J'ai deux façons de faire la même chose mais je ne reçois pas les mêmes résultats. Quelle est la raison pour ça?Merge vs Proc sql
Première façon:
Proc sql;
Create table abc.immu as
select ID, DATE, CODE
from xyz.imm
where DATE between to_date('2008-01-01','YYYY-MM-DD') and to_date('2016-01-31','YYYY-MM-DD')
Order by CODE);
Quit;
Proc sql ;
Create table abc.testb as
select CODE, description from xyz.REF_code where lower(description)like '%hep b%';
Quit;
proc sort data=abc.testb;
by code;
run;
data abc.testb1;
merge abc.immu(in=a) abc.testb (in=b);
by code;
if a=1 and b=1;
run;
Deuxième façon
Create table abc.testb1 as
Select ID, DATE,CODE
From xyz.imm
where CODE in (select CODE from xyz.REF_code where lower(description)like '%hep b%')
AND DATE between to_date('2008-01-01','YYYY-MM-DD') and to_date('2016-01-31','YYYY-MM-DD')
Order by ID, DATE;
Quit;
proc sort data=abc.testb1 nodupkey;
by ID DATE;
run;
Pourquoi ne reçois pas le même résultat? N'est-ce pas deux façons différentes de réaliser la même chose?
par le même résultat Je veux dire des observations – SAW
to_date() fonctionne pour vous dans SAS? Ce n'est pas un code SAS, à moins que vous n'utilisiez un code d'accès, ce qui ne semble pas se produire en fonction de ce que vous avez posté. Je * pense * que les résultats peuvent différer si vous avez des doublons dans les deux tables. Exécutez PROC COMPARE pour voir où les résultats diffèrent et cela vous aidera à isoler le problème. – Reeza
oui en utilisant passer, même après avoir exécuté aucune clé dup les observations ne sont pas les mêmes – SAW