DATA table1;
infile datalines DELIMITER=',';
INFORMAT id 2. type $10. date date2 MMDDYY10. ;
INPUT id date type date2;
format date date9.
date2 date9.;
DATALINES;
1,02/09/2012,BIG,02/09/2012
2,05/16/2012,BIG,05/18/2012
2,06/18/2012,BIG,06/18/2012
2,06/18/2012,SMALL,
3,08/08/2011,BIG,08/08/2012
3,09/13/2011,BIG,09/13/2012
4,06/08/2016,BIG,06/12/2016
4,06/10/2016,SMALL,
5,08/16/2012,BIG,08/16/2012
5,08/15/2012,SMALL,
;
run;
/*removing same date for an id with different type- only the record with
SMALL is REMOVED*/
proc sql;
create table comb as
Select id, date, type,date2 from table1 t
Where type <> "SMALL" or
not exists(select date from table1
where id = t.id and date = t.date and type <> "SMALL");
run;
это удалило запись, которую я хочу (2 18/18/2012 МАЛЫЙ), но я хочу, чтобы либо тип должен указывать БОЛЬШОЙ & МАЛЕНЬКИЙ для не удаленной записи, либо новое поле, которое указывает БОЛЬШОЙ & МАЛЫЙ
Обратите внимание, что при наличии дублирования в тот же день удаляется только запись малого типа.