Focal Point
Join Issue - Holding data then joining

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/2521058632

July 13, 2007, 01:30 PM
Suzanne
Join Issue - Holding data then joining
We have a fex that pulls data from sourceA, then joins to SourceB - no issues. We print the data and hold as LIST1. When we try to join List1 to another table in SourceB, the data is not returned from the SourceB table we joined to. It is a one to many relationship. I have tried left outer, set all on and joining to all. Any ideas? (We recently had an issue joining in SourceB b/c of data types being A18 in one table and A18v in another, so we put ENGINE SQLORA SET VARCHAR OFF in the configuration file - not sure if that matters.)


WF 766
Win2K
July 13, 2007, 02:38 PM
Suzanne
The tables will join correctly if we hold SourceB (Oracle) data then Join to LIST1.

This message has been edited. Last edited by: Suzanne,


WF 766
Win2K
July 13, 2007, 03:43 PM
FrankDutch
You should do a table hold with an index like

TABLE FILE XXX
PRINT B C D
BY A
ON TABLE HOLD AS LIST1 FORMAT FOCUS INDEX A
END

The format of the fields you want to join need to have the same format (I3 or A5 or something like that)




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7

July 13, 2007, 04:08 PM
Suzanne
I get the following error when attepting to add the index. When I defined the field to make the field name shorter, no records were returned.
NAME OF INDEX FIELD OR TEXT FIELD EXCEEDS 12 CHARACTERS: INPATIENT_DATA_ID


WF 766
Win2K
July 13, 2007, 04:23 PM
FrankDutch
Sorry I forgot to mention that the index field shout be less than 12 characters.
Try a real short field name p.e. IMP_ID.




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7

July 13, 2007, 05:13 PM
Suzanne
No luck...the only way we can get the data from the Oracle table to return is to hold the data and then join to the other WF table. We really need to be able to join directly. Any other ideas? I have also opened a case with tech support.


WF 766
Win2K
July 14, 2007, 06:20 PM
linus
Try holding your list1 as format alpha then use list1 as the host file.


WF 7.7.05
HP-UX - Reporting Server, Windows 2008 - Client, MSSQL 2008, FOCUS Databases, Flat Files
HTML, Excel, PDF
July 16, 2007, 08:59 AM
jgelona
I do this all the time. Here's an example:

JOIN PL_CLID IN KDSPLCMT TO CL_CLID IN KDSCLINT
-*
TABLEF FILE KDSPLCMT
SUM MAX.PL_NDATE AS PLCMT_IN
MAX.CL_BIRTH_DT
MAX.CL_FNM
MAX.CL_LNM
MAX.CL_PETHNIC
MAX.CL_GENDTYPE
COMPUTE BEGIN_DT/YYMD MISSING ON=MISSING;
BY PL_CLID
WHERE PL_VOID_SW IS MISSING
AND PL_NDATE IS-NOT MISSING
AND PL_XDATE IS MISSING
AND RS_RESOURCE IN (1838,1839,1840,1841)
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS WK613W_A FORMAT FOCUS INDEX PL_CLID
END
-*
DEFINE FILE KDSPLCMT CLEAR
END
-*
JOIN CLEAR *
-RUN
-*
-TYPE .
-TYPE . Get Removal Date
-TYPE .
-*
JOIN PL_CLID IN WK613W_A TO ALL RM_CLID IN KDSCLRMV
-*
TABLE FILE WK613W_A
SUM MAX.RM_FRDT AS BEGIN_DT
BY PL_CLID
WHERE RM_RETURN_DT IS MISSING
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD
END
-*
JOIN CLEAR *
-*
MODIFY FILE WK613W_A
FIXFORM FROM HOLD
MATCH PL_CLID
ON MATCH UPDATE BEGIN_DT
ON MATCH/NOMATCH GOTO TOP
DATA ON HOLD
END
-*
FILEDEF HOLD CLEAR
-RUN
-UNIX rm hold*
-*


All of the tables that begin with KDS are Oracle tables.


In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.
July 23, 2007, 11:18 AM
Jeeva
We also have the same issue after upgrading to 7.6.2. IBI suggested re-creating metadata with format AnV. That resolved the join issue but we have some other problems, like in some DEFINES we have to use same AnV format if you use it in a join or WHERE clause.


Production WebFOCUS 7.6.2, Platform Win2003, Database Oracle 10g
July 24, 2007, 08:49 AM
jgelona
Jeeva,

We had the same issue when moving from 5.x to 7.x. We had been running on masters that were generated way back in FOCUS for HP-UX that did not support AnV fields. When we got to 7.x, the JOINs in a lot of programs did not work. Also, anytime we created a new master it was built with AnV fields instead of An fields. The fix was to add the following to the edasprof:

ENGINE SQLORA SET ORACHAR VAR
ENGINE SQLORA SET VARCHAR OFF

That returned WebFOCUS back to the old way of handing Oracle VarChar fields.


In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.