<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: 매월말 기준에 해당하는 현황을 발췌하는 매크로 질문 in SAS News and Q&amp;A</title>
    <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EB%A7%A4%EC%9B%94%EB%A7%90-%EA%B8%B0%EC%A4%80%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-%ED%98%84%ED%99%A9%EC%9D%84-%EB%B0%9C%EC%B7%8C%ED%95%98%EB%8A%94-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%A7%88%EB%AC%B8/m-p/708374#M34</link>
    <description>&lt;P&gt;질문 내용을 100% 이해하지 못해서... 다음과 같이 해봤습니다.&lt;/P&gt;
&lt;P&gt;매크로가 꼭 필요한 것 같지는 않아서 사용하지 않았습니다.&lt;/P&gt;
&lt;P&gt;그리고, 20160131부터 시작하는 이유도 잘 모르겠네요. 조건을 적용하면 남는 데이터가 없거든요.&lt;/P&gt;
&lt;P&gt;혹 잘못된 부분이나 추가 문의 있으시면 알려주세요.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.tmp1;
	infile datalines;
	input CD:$4. STRT_DT:yymmdd8.  TO_DT:yymmdd8.;
	format STRT_DT TO_DT yymmddn8.;
datalines;
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
;
run;

data work.end_dt;
	mth_end_dt=today();
	do until (mth_end_dt='31jan2016'd);
		mth_end_dt=intnx('month', mth_end_dt, -1, 'e');
		output;
	end;
	format mth_end_dt yymmddn8.;
run;

proc sql;
	create table work.tmp2 as
		select ee.*, tt.*
			from work.tmp1 tt, work.end_dt ee
			where tt.strt_dt&amp;lt;=ee.mth_end_dt and tt.to_dt&amp;gt;=ee.mth_end_dt
			order by 1,2
;
quit;

data work.final;
	set work.tmp2;
	by mth_end_dt cd;
	if first.cd;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 28 Dec 2020 01:11:03 GMT</pubDate>
    <dc:creator>Chulgyu1</dc:creator>
    <dc:date>2020-12-28T01:11:03Z</dc:date>
    <item>
      <title>매월말 기준에 해당하는 현황을 발췌하는 매크로 질문</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EB%A7%A4%EC%9B%94%EB%A7%90-%EA%B8%B0%EC%A4%80%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-%ED%98%84%ED%99%A9%EC%9D%84-%EB%B0%9C%EC%B7%8C%ED%95%98%EB%8A%94-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%A7%88%EB%AC%B8/m-p/707830#M33</link>
      <description>&lt;P&gt;&lt;BR /&gt;안녕하세요. SAS 매크로 질문 드립니다.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CD STRT_DT&amp;nbsp; TO_DT&lt;BR /&gt;C001 20181101 20191017&lt;BR /&gt;C001 20181101 20191017&lt;BR /&gt;C001 20181101 20191017&lt;BR /&gt;C001 20181101 20191017&lt;BR /&gt;C002 20190501 99991231&lt;BR /&gt;C002 20190501 99991231&lt;BR /&gt;C002 20190501 99991231&lt;BR /&gt;C003 20200305 99991231&lt;BR /&gt;C003 20200305 99991231&lt;BR /&gt;C003 20191018 99991231&lt;BR /&gt;C003 20191018 99991231&lt;BR /&gt;C004 20200305 20200511&lt;BR /&gt;C004 20200305 20200511&lt;BR /&gt;C004 20191101 20200511&lt;BR /&gt;C004 20191101 20200511&lt;BR /&gt;C005 20200305 99991231&lt;BR /&gt;C005 20200305 99991231&lt;BR /&gt;C005 20191216 99991231&lt;BR /&gt;C006 20200512 20200624&lt;BR /&gt;C006 20200512 20200624&lt;BR /&gt;C007 20200625 99991231&lt;BR /&gt;C007 20200625 99991231&lt;/P&gt;&lt;P&gt;이런식으로 데이터가 있는데&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;20160131부터 20201130까지 매월말 기준으로 발췌하는 매크로를 만들고 싶습니다.&lt;/P&gt;&lt;P&gt;20160131부터 20201130까지 매월말 기준으로 테이블을 발췌하는것까지는 했는데 해당내용을 매크로로 구하기는 어렵더라구요.&lt;/P&gt;&lt;P&gt;data a:&lt;/P&gt;&lt;P&gt;n=put (today(), yymmddn8. );&lt;/P&gt;&lt;P&gt;do until (n='20160131');&lt;/P&gt;&lt;P&gt;n=put(intnx('month, input(n,yymmddn8. ),-1,'e'), yymmddn8. );&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;최종 적으로 원하는 테이블 형태는&lt;/P&gt;&lt;P&gt;기준년월 CD 운영시작일 운영종료일&lt;/P&gt;&lt;P&gt;20160131 ...&lt;/P&gt;&lt;P&gt;20160229 ...&lt;/P&gt;&lt;P&gt;20160331 ...&lt;/P&gt;&lt;P&gt;이렇게 만들고 싶습니다. 도와주세요ㅠㅠ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;발췌조건) STRT_DT&amp;lt;=매월말&amp;lt;=TO_DT인 데이터 중에서&lt;BR /&gt;&amp;nbsp;중복된 CD별로 첫번째 있는 행만 발췌&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table table2 as&lt;BR /&gt;select *&lt;BR /&gt;from table1&lt;BR /&gt;where STRT_DT&amp;lt;='20160131'&lt;BR /&gt;and TO_DT&amp;gt;='20160131'&lt;BR /&gt;;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Nov 2021 16:10:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/%EB%A7%A4%EC%9B%94%EB%A7%90-%EA%B8%B0%EC%A4%80%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-%ED%98%84%ED%99%A9%EC%9D%84-%EB%B0%9C%EC%B7%8C%ED%95%98%EB%8A%94-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%A7%88%EB%AC%B8/m-p/707830#M33</guid>
      <dc:creator>박은지</dc:creator>
      <dc:date>2021-11-09T16:10:57Z</dc:date>
    </item>
    <item>
      <title>Re: 매월말 기준에 해당하는 현황을 발췌하는 매크로 질문</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EB%A7%A4%EC%9B%94%EB%A7%90-%EA%B8%B0%EC%A4%80%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-%ED%98%84%ED%99%A9%EC%9D%84-%EB%B0%9C%EC%B7%8C%ED%95%98%EB%8A%94-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%A7%88%EB%AC%B8/m-p/708374#M34</link>
      <description>&lt;P&gt;질문 내용을 100% 이해하지 못해서... 다음과 같이 해봤습니다.&lt;/P&gt;
&lt;P&gt;매크로가 꼭 필요한 것 같지는 않아서 사용하지 않았습니다.&lt;/P&gt;
&lt;P&gt;그리고, 20160131부터 시작하는 이유도 잘 모르겠네요. 조건을 적용하면 남는 데이터가 없거든요.&lt;/P&gt;
&lt;P&gt;혹 잘못된 부분이나 추가 문의 있으시면 알려주세요.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.tmp1;
	infile datalines;
	input CD:$4. STRT_DT:yymmdd8.  TO_DT:yymmdd8.;
	format STRT_DT TO_DT yymmddn8.;
datalines;
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
;
run;

data work.end_dt;
	mth_end_dt=today();
	do until (mth_end_dt='31jan2016'd);
		mth_end_dt=intnx('month', mth_end_dt, -1, 'e');
		output;
	end;
	format mth_end_dt yymmddn8.;
run;

proc sql;
	create table work.tmp2 as
		select ee.*, tt.*
			from work.tmp1 tt, work.end_dt ee
			where tt.strt_dt&amp;lt;=ee.mth_end_dt and tt.to_dt&amp;gt;=ee.mth_end_dt
			order by 1,2
;
quit;

data work.final;
	set work.tmp2;
	by mth_end_dt cd;
	if first.cd;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 28 Dec 2020 01:11:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/%EB%A7%A4%EC%9B%94%EB%A7%90-%EA%B8%B0%EC%A4%80%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-%ED%98%84%ED%99%A9%EC%9D%84-%EB%B0%9C%EC%B7%8C%ED%95%98%EB%8A%94-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%A7%88%EB%AC%B8/m-p/708374#M34</guid>
      <dc:creator>Chulgyu1</dc:creator>
      <dc:date>2020-12-28T01:11:03Z</dc:date>
    </item>
  </channel>
</rss>

