Focal Point Banner


As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.

Join the TIBCO Community
TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.

  • From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
  • Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
  • Request access to the private WebFOCUS User Group (login required) to network with fellow members.

Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Conditional Join in DB2

Read-Only Read-Only Topic
Go
Search
Notify
Tools
Conditional Join in DB2
 Login/Join
 
Expert
posted
I'm having a bit of trouble with a Conditional Join with DB2 tables.

I expected the generated SQL to reflect the conditional join, i.e. that the SQL would look something like this:

SELECT distinct
T1.COMM_CUST_FAC_KEY, T1.DEFAULT_DT, T1.FAC_TP_CD,
T1.PROD_CD, T1.RESOLUTION_IND, T1.RESOLUTION_DT,
T1.COMM_CUST_KEY, T2.TIME_DIM_KEY, T2.PERIOD_TYPE,
T2.PERIOD_START_DT, T2.PERIOD_END_DT
FROM
BSLC.DFLT_COMM_CUST_FAC_D T1,
LEFT JOIN BSLC.TIME_D T2 
  ON T1.DEFAULT_DT >= T2.PERIOD_START_DT AND
     T1.DEFAULT_DT <= T2.PERIOD_END_DT AND
     T2.PERIOD_TYPE = 'MONTH'

WHERE
(T1.RESOLUTION_DT BETWEEN '2008-11-01' AND '2009-10-31')
AND
(T1.RESOLUTION_IND = 'Y');

Instead it looks like a normal SQL statement:
SELECT
T1.COMM_CUST_FAC_KEY, T1.DEFAULT_DT, T1.FAC_TP_CD,
T1.PROD_CD, T1.RESOLUTION_IND, T1.RESOLUTION_DT,
T1.COMM_CUST_KEY, T2.TIME_DIM_KEY, T2.PERIOD_TYPE,
T2.PERIOD_START_DT, T2.PERIOD_END_DT
FROM
BSLC.DFLT_COMM_CUST_FAC_D T1,BSLC.TIME_D T2
WHERE
(T1.DEFAULT_DT >= T2.PERIOD_START_DT)
AND
(T1.DEFAULT_DT <= T2.PERIOD_END_DT)
AND
(T2.PERIOD_TYPE = 'MONTH')
AND
(T1.RESOLUTION_DT BETWEEN '2008-11-01' AND '2009-10-31')
AND
(T1.RESOLUTION_IND = 'Y')

ORDER BY
T1.COMM_CUST_FAC_KEY

FOR FETCH ONLY;

Any ideas regarding this?

Thank you,


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
 
Posts: 10577 | Location: Toronto, Ontario, Canada | Registered: April 27, 2005Report This Post
Expert
posted Hide Post
You may have to look at the Master and Access file to determine the Keys, from a FOCUS point of view, also are there any non DB2 tables in the join ?

Does the join return the wrong results ?


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

 
Posts: 6347 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Report This Post
Expert
posted Hide Post
I think I'm addressing all the keys, there are no non-DB2 tables and I think the right results are returned, I just thought the generated SQL would reflect the WebFOCUS Conditional Join.


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
 
Posts: 10577 | Location: Toronto, Ontario, Canada | Registered: April 27, 2005Report This Post
Expert
posted Hide Post
What would be interesting to know is which query is more efficient.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

 
Posts: 6347 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Report This Post
Expert
posted Hide Post
As it's not an OUTER join then I would say the SQL generated is perfectly OK - as your results attest?

However, if you specified an OUTER join then obviously you'd be correct to be concerned.

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
 
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004Report This Post
Expert
posted Hide Post
Thanks Tony. It is an inner join, I'll keep your comments in mind for an outer join.

Cheers,


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
 
Posts: 10577 | Location: Toronto, Ontario, Canada | Registered: April 27, 2005Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Conditional Join in DB2

Copyright © 1996-2020 Information Builders