Hi guys. I'm having issue with showing the records that satisfy the condition of comparing the value in a column to a dataset name. The code below is the Dataline that creates the "information" table: /***************************************************************************************/ data CTL_JOINFLD; infile datalines dsd /*delimiter=','*/; length tbl_name1 $25. tbl_name2 $25. id $20. prim_key $20.; input tbl_name1 $ tbl_name2 $ id $ prim_key $; datalines; COUNTERPARTY,COUNTERPARTY_HIST,Y,COUNTERPARTY_ID COUNTERPARTY,COUNTERPARTY_HIST,N,COUNTERPARTY_NAME LKP_BS_GL_FRP_MAP,LKP_BS_GL_FRP_MAP,Y,GL_ID LKP_BS_GL_FRP_MAP,LKP_BS_GL_FRP_MAP,N,BUSINESS_UNIT ; run; /***************************************************************************************/ The code below is to create macro function that set dataset1 and dataset2 macro variables to table names. I have other steps in the macro function but those aren't connected to this specific problem. /***************************************************************************************/ %macro dynamic_left_join(dataset1,dataset2); data UNQ_KEY; set CTL_JOINFLD; /*Used the table created above*/ if tbl_name1 = "&dataset1" and tbl_name2= "&dataset2" then join_key = catx(' = ','X.' || prim_key, 'Y.' || prim_key); /*Set the condition of checking the value of tbl_name1 if it is equal to the dataset name*/ /*Also created new variable for later use*/ else delete; /*delete other records if not satisfy the condition*/ run; %mend dynamic_left_join; %dynamic_left_join(COUNTERPARTY, COUNTERPARTY_HIST); /***************************************************************************************/ I also used PROC SQL STEP but showing no results too. proc sql; create table UNQ_KEY as select tbl_name1, id, prim_key, catx(' = ','X.' || prim_key, 'Y.' || prim_key) as join_key from CTL_JOINFLD where (upcase(strip(tbl_name1)) = upcase(strip("&dataset1")) and upcase(strip(tbl_name2)) = upcase(strip("&dataset2"))) /*Tried here to strip and put both values to Uppercase but still no results found*/ ; quit; The result should show the records of Counterparty, Counterparty_Hist rows. But do not show after running. Is there something wrong with comparing the value from a column with macro variable? Or what should be the proper solution? Thanks in advance.
... View more