I have the following code. Table Y has multiple rows for the same key as in Table X. The join is JOIN=ALL, LEFT OUTER. I am still getting multiple rows from Y (more than one EFF_DT3). Can anyone tell me why? I just want the row with the highest EFF_DT from table y where the Year and Month of EFF_DT is LE the Year and Month entered into the prompts.
-PROMPT &MO.Enter Month (mm).;
-PROMPT &YR.Enter Year (yyyy).;
DEFINE FILE X
EFF_DT3/I6YY|M = EDIT(EDIT(EFF_DT2,'999999'));
INT_MO/I2 = &MO;
INT_YR/I4 = &YR;
ALPHA_MO/A2 = EDIT(INT_MO);
ALPHA_YR/A4 = EDIT(INT_YR);
ALPHA_YR_MO/A6 = ALPHA_YR || ALPHA_MO;
PROMPT_YR_MO/I6YY|M = EDIT(EDIT(ALPHA_YR_MO,'999999'));
TABLE FILE X
BY HIGHEST 1 EFF_DT3 WHERE EFF_DT3 LE PROMPT_YR_MO ;
ON TABLE HOLD AS HOLDTBL1 FORMAT FOCUS
-RUNThis message has been edited. Last edited by: Ted Michalski,
EXCEL, PDF, CSV, TEXT
I am assuming that you have the join like this.
join filed in tablex to all field in tabley as j1
if you want the date from tabley, shouldnt you be using the date in define as
instead of x.dateeff?
I have not ever seen this work reliably when combining lines. Separate them and see if it works:
BY HIGHEST 1 EFF_DT3
WHERE EFF_DT3 LE PROMPT_YR_MO;
You also might want to test all your defines by including them in the PRINT/SUM to make sure everything is calculating as you expect. You can remove or NOPRINT them after checking them all.
In FOCUS since 1991
WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex
Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex
WF Client: 77 on Linux w/Tomcat
|Powered by Social Strata|