data have;
input (id Date Subject1 Subject2 ) (& $40.);
cards;
1 July 10, 2020 Math Science
1 July 10, 2020 . Science
1 July 10, 2020 . Science
2 Feb 10, 2020 History Physics
2 Feb 10, 2020 Biology Physics
3 Jun 24, 2020 . Math
3 Jun 24, 2020 . Math
4 May 7, 2020 History Math
4 May 7, 2020 English Math
4 May 7, 2020 . Math
5 Feb 2, 2020 . French
5 Feb 2, 2020 . French
;
proc sql;
create table want as
select id,date,Subject1 as Subject
from have
where Subject1 is not missing
union
select id,date,max(Subject2)
from have
group by id,date
having n(Subject1)=0;
quit;
... View more