BookmarkSubscribeRSS Feed
EinarRoed
Pyrite | Level 9

Hello,

Imagine that you're working in DI Studio. You have an SQL Join with the two following input tables:

Input #1: DEAL_MAIN

DEAL_NOPOL_NOLAPSE_DT
1172AUG13
1173SEP13
2185JUL13
2186MAY13
2187SEP13
3222FEB13
3223OCT13
4301MAY13
4302JUN13
4303APR13

Input #2: DEAL_POL

DEAL_NOPOL_NO
1173
2186
3222
4301

They are joined by a LEFT JOIN (DEAL_NO=DEAL_NO), because *all* the rows in the table DEAL_MAIN must be included.

My problem is this: The column LAPSE_DT in the main table must display only the date where there's a match on POL_NO in the second table. So, the output work table should look like this (only LAPSE_DT has changed):

DEAL_NOPOL_NOLAPSE_DT
1172SEP13
1173SEP13
2185MAY13
2186MAY13
2187MAY13
3222FEB13
3223FEB13
4301MAY13
4302MAY13
4303MAY13

Can someone please advice me on how to accomplish this? I suspect that this can be solved by means of an expression for the LAPSE_DT variable, or a subquery, but I can't seem to get it right.

In any case, thanks for your time.

2 REPLIES 2
sam369
Obsidian | Level 7


Hi EinarRoed,

Some one might come with slick answer !!! here is one apporach

data have;

input DEAL_NO  POL_NO  LAPSE_DT $;

cards;

1  172  AUG13

1  173  SEP13

2  185  JUL13

2  186  MAY13

2  187  SEP13

3  222  FEB13

3  223  OCT13

4  301  MAY13

4  302  JUN13

4  303  APR13

;

run;

data have2;

input DEAL_NO  POL_NO;

cards;

1  173

2  186

3  222

4  301

;

run;

proc sql;

create table temp as

select a.*,b.flag

from have as a left join(select *,1 as flag from have2) as b

on a.DEAL_NO=b.DEAL_NO & a.POL_NO=b.POL_NO

having calculated flag eq 1;

quit;

proc sql;

create table want as

select a.*,b.LAPSE_DT

from have(drop=LAPSE_DT) as a left join temp as b

on a.DEAL_NO=b.DEAL_NO;

quit;

Thanks

Sam

LinusH
Tourmaline | Level 20

You don't need a specific flag column, just test one of the join columns if it is not null.

In the expression builder (or Case builder):

case when deal_pol.pol_no = . then .

else lapse_dt

end

(as lapse_dt)

Data never sleeps

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 863 views
  • 6 likes
  • 3 in conversation