from RCA.VISIT_LOANACCOUNTS la left join RCA.VISIT_FEEDBACK fb on Fb.Accountid=La.id left join RCA.VISIT_APPLICATIONORG ao on la.agencyid=ao.id left join RCA.VISIT_APPLICATIONUSER au on la.CollectorId=au.id left join RCA.VISIT_LOANACCOUNTS L on Fb.AccountId = L.Id left join RCA.VISIT_APPLICATIONUSER auo on la.AllocationOwnerId=auo.id left join RCA.VISIT_APPLICATIONUSER auf on auf.id=fb.CreatedBy left join RCA.VISIT_APPLICATIONORG AOO on auf.BaseBranchId = AOO.Id
I have used left join for 4 tables by repeating them twice or thrice. I want to use each table once and want to put the joins, but when I do that it shows that the below table has not been referenced yet. How can I do that it error free?
How the log look like? What is exact error message in the log?
Bart
[EDIT]
P.S. I'm asking about your log because in my sas session everything went smoothly:
code:
libname RCA (work);
data RCA.VISIT_LOANACCOUNTS;
id=1;
agencyid=1;
CollectorId=1;
AllocationOwnerId=1;
run;
data RCA.VISIT_FEEDBACK;
Accountid=1;
CreatedBy=1;
run;
data RCA.VISIT_APPLICATIONORG ;
id =1;
run;
data RCA.VISIT_APPLICATIONUSER;
id=1;
BaseBranchId=1;
run;
proc sql feedback;
select *
from RCA.VISIT_LOANACCOUNTS la
left join RCA.VISIT_FEEDBACK fb on Fb.Accountid=La.id
left join RCA.VISIT_APPLICATIONORG ao on la.agencyid=ao.id
left join RCA.VISIT_APPLICATIONUSER au on la.CollectorId=au.id
left join RCA.VISIT_LOANACCOUNTS L on Fb.AccountId = L.Id
left join RCA.VISIT_APPLICATIONUSER auo on la.AllocationOwnerId=auo.id
left join RCA.VISIT_APPLICATIONUSER auf on auf.id=fb.CreatedBy
left join RCA.VISIT_APPLICATIONORG AOO on auf.BaseBranchId = AOO.Id
;
quit;
log:
1 libname RCA (work);
NOTE: Libref RCA was successfully assigned as follows:
Levels: 1
Engine(1): V9
Physical Name(1): ************************************
2
3 data RCA.VISIT_LOANACCOUNTS;
4 id=1;
5 agencyid=1;
6 CollectorId=1;
7 AllocationOwnerId=1;
8 run;
NOTE: The data set RCA.VISIT_LOANACCOUNTS has 1 observations and 4 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
9 data RCA.VISIT_FEEDBACK;
10 Accountid=1;
11 CreatedBy=1;
12 run;
NOTE: The data set RCA.VISIT_FEEDBACK has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
13 data RCA.VISIT_APPLICATIONORG ;
14 id =1;
15 run;
NOTE: The data set RCA.VISIT_APPLICATIONORG has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
16 data RCA.VISIT_APPLICATIONUSER;
17 id=1;
18 BaseBranchId=1;
19 run;
NOTE: The data set RCA.VISIT_APPLICATIONUSER has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
20
21 proc sql feedback;
22 select *
23 from RCA.VISIT_LOANACCOUNTS la
24 left join RCA.VISIT_FEEDBACK fb on Fb.Accountid=La.id
25 left join RCA.VISIT_APPLICATIONORG ao on la.agencyid=ao.id
26 left join RCA.VISIT_APPLICATIONUSER au on la.CollectorId=au.id
27 left join RCA.VISIT_LOANACCOUNTS L on Fb.AccountId = L.Id
28 left join RCA.VISIT_APPLICATIONUSER auo on la.AllocationOwnerId=auo.id
29 left join RCA.VISIT_APPLICATIONUSER auf on auf.id=fb.CreatedBy
30 left join RCA.VISIT_APPLICATIONORG AOO on auf.BaseBranchId = AOO.Id
31 ;
NOTE: Statement transforms to:
select LA.id, LA.agencyid, LA.CollectorId, LA.AllocationOwnerId, FB.Accountid, FB.CreatedBy, AO.id,
AU.id, AU.BaseBranchId, L.id, L.agencyid, L.CollectorId, L.AllocationOwnerId, AUO.id, AUO.BaseBranchId,
AUF.id, AUF.BaseBranchId, AOO.id
from RCA.VISIT_LOANACCOUNTS LA left outer join RCA.VISIT_FEEDBACK FB on FB.Accountid = LA.id left
outer join RCA.VISIT_APPLICATIONORG AO on LA.agencyid = AO.id left outer join RCA.VISIT_APPLICATIONUSER AU
on LA.CollectorId = AU.id left outer join RCA.VISIT_LOANACCOUNTS L on FB.Accountid = L.id left outer join
RCA.VISIT_APPLICATIONUSER AUO on LA.AllocationOwnerId = AUO.id left outer join RCA.VISIT_APPLICATIONUSER
AUF on AUF.id = FB.CreatedBy left outer join RCA.VISIT_APPLICATIONORG AOO on AUF.BaseBranchId = AOO.id;
32 quit;
NOTE: PROCEDURE SQL used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.