안녕하세요. SAS 매크로 질문 드립니다. CD STRT_DT TO_DT C001 20181101 20191017 C001 20181101 20191017 C001 20181101 20191017 C001 20181101 20191017 C002 20190501 99991231 C002 20190501 99991231 C002 20190501 99991231 C003 20200305 99991231 C003 20200305 99991231 C003 20191018 99991231 C003 20191018 99991231 C004 20200305 20200511 C004 20200305 20200511 C004 20191101 20200511 C004 20191101 20200511 C005 20200305 99991231 C005 20200305 99991231 C005 20191216 99991231 C006 20200512 20200624 C006 20200512 20200624 C007 20200625 99991231 C007 20200625 99991231 이런식으로 데이터가 있는데 20160131부터 20201130까지 매월말 기준으로 발췌하는 매크로를 만들고 싶습니다. 20160131부터 20201130까지 매월말 기준으로 테이블을 발췌하는것까지는 했는데 해당내용을 매크로로 구하기는 어렵더라구요. data a: n=put (today(), yymmddn8. ); do until (n='20160131'); n=put(intnx('month, input(n,yymmddn8. ),-1,'e'), yymmddn8. ); output; end; run; 최종 적으로 원하는 테이블 형태는 기준년월 CD 운영시작일 운영종료일 20160131 ... 20160229 ... 20160331 ... 이렇게 만들고 싶습니다. 도와주세요ㅠㅠ 발췌조건) STRT_DT<=매월말<=TO_DT인 데이터 중에서 중복된 CD별로 첫번째 있는 행만 발췌 proc sql; create table table2 as select * from table1 where STRT_DT<='20160131' and TO_DT>='20160131' ;
... View more