Here is the Proc SQL Solution for it . Hope this helps :
data have;
input VAR1 $ VAR2 $ VAR3 $ VAR4 $ VAR5 $ DATE1:anydtdte. DATE2:anydtdte.;
format date1 date2 mmddyys10.;
infile cards truncover;
cards;
PERSON1 1 3 TYPE1 TYPE11 8/28/2012 2/23/2013
PERSON1 1 3 TYPE1 TYPE11 3/13/2013 3/16/2013
PERSON1 1 3 TYPE1 TYPE11 3/21/2013 4/12/2013
PERSON1 1 3 TYPE1 TYPE11 4/17/2013 10/22/2013
PERSON1 1 3 TYPE1 TYPE11 11/10/2013 11/26/2013
PERSON1 2 1 TYPE1 TYPE11 11/2/2019 11/18/2019
PERSON2 1 1 TYPE1 TYPE11 1/23/2010 7/21/2010
PERSON2 1 1 TYPE1 TYPE11 7/28/2010 8/12/2010
PERSON2 1 1 TYPE1 TYPE11 8/30/2010 9/28/2010
PERSON2 1 1 TYPE1 TYPE11 5/31/2014 11/14/2014
PERSON2 1 1 TYPE2 TYPE21 7/21/2010 10/8/2010
PERSON3 1 1 TYPE1 TYPE11 10/7/2020 10/15/2020
PERSON3 2 1 TYPE1 TYPE11 5/12/2015 5/21/2015
PERSON3 2 1 TYPE1 TYPE11 10/5/2016 11/14/2016
PERSON3 2 1 TYPE1 TYPE11 2/15/2017 3/7/2017
PERSON3 2 1 TYPE1 TYPE11 5/3/2017 10/30/2017
PERSON3 2 1 TYPE1 TYPE11 11/11/2017 12/1/2017
;
run;
Proc SQl;
Create table want as
select VAR1, VAR2, VAR3, VAR4, VAR5,
min(date1) as FIRST_DATE format=mmddyys10.,
max(date2) as LAST_DATE format=mmddyys10.,
max(date2)-min(date1) as DIFFERENCE
from have
group by 1,2,3,4,5;
Quit;
... View more