GabyLP
GabyLP

Reputation: 3781

sas merge nomatch conditional for only one table

I have 4 tables:

  1. one with a list of users that did sth (post or reply) in march (field email1)
  2. one with replies of users made in jan (several fields but I need to use Mailfrom_Address)
  3. another with replies made in feb (several fields but I need to use Mailfrom_Address)
  4. and another with posting of users for jan, feb and march (this table has email1)

I need to get the users from the table 1 that started doing sth in march. This means that I need to exclude from table 1 the users that are in table 2 or table 3 or table 4 (but only for month jan & feb.. and here's my issue: this condition over table 4).

I started this code.

data lib.all_emails_march_start (keep= email1);
merge lib.all_emails_march (IN=In1) 
lib.replies_ene_2 (rename= (Mailfrom_Address=email1)) (IN=In2)
lib.replies_feb_2 (rename= (Mailfrom_Address=email1)) (IN=In3)
lib.listings_5 where anomes in ('2014-01', '2014-02') (IN=In4);
by email1;
if (In1=1 and In2=0 and In3=0 and In4=0) then output lib.all_emails_march_start;
run;

but the condition should be only for the table 4 (listings_5) and this variable (anomes) isn't in the other tables (1 to 3), so I don't know how to do this.

I would like to do this in only one stp, and not create first a table for listings with only jan and feb. Would you please give me some ideas?

Thanks!!!! :D :D :D

Upvotes: 0

Views: 128

Answers (1)

Chris J
Chris J

Reputation: 7769

PROC SQL is probably more suited to this...

proc sql ;
  create table lib.all_emails_march_start as
  select *
  from lib.all_emails_march 
  where user not in(select distinct user from lib.replies_ene_2)
    and user not in(select distinct user from lib.replies_feb_2)
    and user not in(select distinct user from lib.listings_5 
                    where anomes in ('2014-01', '2014-02'))
  ;
quit ;

Upvotes: 2

Related Questions