<?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 Selecting previous two working days in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227460#M40988</link>
    <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;I want to select records where product code is B and previous two working dates. For&amp;nbsp;stock ICICBAN i want 8jun2015 and previous two working days 3jun2015(3 entris)&amp;nbsp;5jun2015(2 entries).For stock code TISCO, I want 9Jun and 8Jun2015. For IPCLAB,I want 12may2015,11may2015 and 8may2015.&lt;/P&gt;&lt;P&gt;Kindly help me out in coding this problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep Gupta&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;STOCK&lt;/TD&gt;&lt;TD&gt;PRODUCT_CODE&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jul-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21-Jul-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jun-15&lt;/TD&gt;&lt;TD&gt;TISCO&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9-Jun-15&lt;/TD&gt;&lt;TD&gt;TISCO&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Mon, 28 Sep 2015 09:58:34 GMT</pubDate>
    <dc:creator>Sandeep_Gupta</dc:creator>
    <dc:date>2015-09-28T09:58:34Z</dc:date>
    <item>
      <title>Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227460#M40988</link>
      <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;I want to select records where product code is B and previous two working dates. For&amp;nbsp;stock ICICBAN i want 8jun2015 and previous two working days 3jun2015(3 entris)&amp;nbsp;5jun2015(2 entries).For stock code TISCO, I want 9Jun and 8Jun2015. For IPCLAB,I want 12may2015,11may2015 and 8may2015.&lt;/P&gt;&lt;P&gt;Kindly help me out in coding this problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep Gupta&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;STOCK&lt;/TD&gt;&lt;TD&gt;PRODUCT_CODE&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jun-15&lt;/TD&gt;&lt;TD&gt;ICIBAN&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-May-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23-Jun-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jul-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21-Jul-15&lt;/TD&gt;&lt;TD&gt;INFTEC&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12-May-15&lt;/TD&gt;&lt;TD&gt;IPCLAB&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8-Jun-15&lt;/TD&gt;&lt;TD&gt;TISCO&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9-Jun-15&lt;/TD&gt;&lt;TD&gt;TISCO&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 28 Sep 2015 09:58:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227460#M40988</guid>
      <dc:creator>Sandeep_Gupta</dc:creator>
      <dc:date>2015-09-28T09:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227463#M40991</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  input DATE date. STOCK $7. PRODUCT_CODE : $1.;
  format DATE date.;
  cards;
3Jun15	ICIBAN C
3Jun15	ICIBAN C
3Jun15	ICIBAN C
5Jun15	ICIBAN C
5Jun15	ICIBAN C
8Jun15	ICIBAN B
14May15	INFTEC C
14May15	INFTEC C
18May15	INFTEC B
18May15	INFTEC B
5Jun15	INFTEC C
5Jun15	INFTEC C
9Jun15	INFTEC C
15Jun15	INFTEC C
23Jun15	INFTEC C
8Jul15	INFTEC C
21Jul15	INFTEC C
7May15	IPCLAB C
8May15	IPCLAB C
11May15	IPCLAB C
12May15	IPCLAB B
8Jun15	TISCO  C
9Jun15	TISCO  B
run;
proc sort nodupkey ;
  by STOCK PRODUCT_CODE DATE;
run;
data WANT;
  set HAVE;
  by STOCK PRODUCT_CODE DATE;
  if first.STOCK then do;
    if PRODUCT_CODE ne 'B' then put 'ERROR' _ALL_;
    N=0;
  end;
  N+1;
  if N&amp;lt;=3 then output; 
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 28 Sep 2015 10:18:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227463#M40991</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2015-09-28T10:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227464#M40992</link>
      <description>&lt;P&gt;Or if you need to keep the number of records for each date:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  input DATE date. STOCK $7. PRODUCT_CODE : $1.;
  format DATE date.;
  cards;
3Jun15	ICIBAN C
3Jun15	ICIBAN C
3Jun15	ICIBAN C
5Jun15	ICIBAN C
5Jun15	ICIBAN C
8Jun15	ICIBAN B
14May15	INFTEC C
14May15	INFTEC C
18May15	INFTEC B
18May15	INFTEC B
5Jun15	INFTEC C
5Jun15	INFTEC C
9Jun15	INFTEC C
15Jun15	INFTEC C
23Jun15	INFTEC C
8Jul15	INFTEC C
21Jul15	INFTEC C
7May15	IPCLAB C
8May15	IPCLAB C
11May15	IPCLAB C
12May15	IPCLAB B
8Jun15	TISCO  C
9Jun15	TISCO  B
run;
proc means data=HAVE nway noprint;
  class STOCK PRODUCT_CODE DATE;
  output out=SUM(drop=_TYPE_);
run;
data WANT;
  set SUM;
  by STOCK PRODUCT_CODE DATE;
  if first.STOCK then do;
    if PRODUCT_CODE ne 'B' then put 'ERROR' _ALL_;
    N=0;
  end;
  N+1;
  if N&amp;lt;=3 then output; 
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 28 Sep 2015 10:21:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227464#M40992</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2015-09-28T10:21:56Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227466#M40994</link>
      <description>&lt;P&gt;Or if you need to keep each record replace&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  if N&amp;lt;=3 then output; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;with&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  if N&amp;lt;=3 then do i=1 to _FREQ_; output; end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 28 Sep 2015 10:24:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227466#M40994</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2015-09-28T10:24:07Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227495#M41004</link>
      <description>&lt;P&gt;It's a much more difficult problem than it seems at first, because of the possibility of multiple "B" records for the same product.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I recommend that you begin by numbering the dates for each product:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by stock date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.stock then counter=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else if first.date then counter + 1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can always print this to see what it looks like.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That makes it relatively easy to get a list of all the counter numbers that you would want:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where product_code='B';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do needed_counter = max(1, counter-2) to counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; keep stock needed_counter;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=want3 nodupkey;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by stock needed_counter;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Again, you can print the results to see what you are getting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, merge and select:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; merge have2 (in=in1) have3 (in=in2 rename=(needed_counter=counter));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by stock counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if in1 and in2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There may be ways to do this with SQL instead, but you would have to be very careful not to select the same record twice if, for example, there were a pattern of B C B on three sequential records for the same product.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2015 14:16:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227495#M41004</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-09-28T14:16:57Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting previous two working days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227604#M41020</link>
      <description>&lt;P&gt;Thanks a lot guys...&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2015 04:14:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-previous-two-working-days/m-p/227604#M41020</guid>
      <dc:creator>Sandeep_Gupta</dc:creator>
      <dc:date>2015-09-29T04:14:47Z</dc:date>
    </item>
  </channel>
</rss>

