BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Bipasha
Obsidian | Level 7

I have the following code: 

proc sql; 

UPDATE TEMP

SET CUST_NATIONALITY=(SELECT CUST_NATIONALITY

FROM (SELECT CUST_NATIONALITY, COUNT(CUST_NATIONALITY) AS FREQ

FROM MIP_LIB.REATIL_PORTFOLIO_NEW

GROUP BY CUST_NATIONALITY)

HAVING FREQ=MAX(FREQ))

WHERE CUST_NATIONALITY IS NULL;

quit;

 

The subquery is returning more than one value. Any one of the value will do for me. Can anyone suggest how to do this with the minimum change made, as I have several such queries throughout my project.

1 ACCEPTED SOLUTION

Accepted Solutions
kiranv_
Rhodochrosite | Level 12

I think, simplest is to make one record table and then update. Like something below

proc sql outobs= 1;
create table temp_stage as

SELECT CUST_NATIONALITY

FROM (SELECT CUST_NATIONALITY, COUNT(CUST_NATIONALITY) AS FREQ

FROM MIP_LIB.REATIL_PORTFOLIO_NEW

GROUP BY CUST_NATIONALITY)

HAVING FREQ=MAX(FREQ))

WHERE CUST_NATIONALITY IS NULL;

quit;


proc sql; 

UPDATE TEMP

SET CUST_NATIONALITY=(select cust_nationality from temp_stage);;

quit;

 

 

View solution in original post

1 REPLY 1
kiranv_
Rhodochrosite | Level 12

I think, simplest is to make one record table and then update. Like something below

proc sql outobs= 1;
create table temp_stage as

SELECT CUST_NATIONALITY

FROM (SELECT CUST_NATIONALITY, COUNT(CUST_NATIONALITY) AS FREQ

FROM MIP_LIB.REATIL_PORTFOLIO_NEW

GROUP BY CUST_NATIONALITY)

HAVING FREQ=MAX(FREQ))

WHERE CUST_NATIONALITY IS NULL;

quit;


proc sql; 

UPDATE TEMP

SET CUST_NATIONALITY=(select cust_nationality from temp_stage);;

quit;

 

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 28794 views
  • 2 likes
  • 2 in conversation