@Xing :
I would suggest:
data date1 ;
input id admdate :mmddyy10. ;
format admdate mmddyy10. ;
cards ;
1 05/01/2009
2 08/01/2010
3 07/01/2011
4 08/24/2007
5 12/11/2012
run ;
data date2 ;
input id admdate :mmddyy10. ;
format admdate mmddyy10. ;
cards ;
1 03/02/2007
1 04/25/2008
1 06/01/2008
2 05/15/2007
2 08/21/2009
2 10/22/2008
3 06/17/2006
4 09/10/2006
4 09/30/2006
run ;
proc sql ;
create table need as select date1.*, N_visits
from date1
left join
(select J.id, sum (ad2 <= intnx ("yr", ad1, -1, "s")) as N_visits
from (select date2.id, date1.admdate as ad1, date2.admdate as ad2
from date1 inner join date2 on date1.id = date2.id) J
group id) N
on date1.id = N.id
;
quit ;
Kind regards
Paul D.
... View more