<?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: DO loop with date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526900#M143585</link>
    <description>&lt;P&gt;If your analysis is grouped along calendar weeks, you can use the week() function to your advantage:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select
  team,
  week(date) as week,
  count(distinct date) as count_days,
  count(*) as count_sales,
  sum(sale_amount) as sum_sales,
  calculated count_sales / calculated count_days as prior_wk_daily_n_sales,
  calculated sum_sales / calculated count_days as prior_wk_daily_dollar_sales,
  intnx('week',max(date),1,'b') + 2 as date format=yymmddd10.
from have
group by team, week;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 14 Jan 2019 12:09:26 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2019-01-14T12:09:26Z</dc:date>
    <item>
      <title>DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526872#M143577</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;&lt;STRONG&gt;Need to find the prior month/week average sales in terms of volume. no sales on weekends or holidays.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;My sample code is below, the where statement and the table name have some issues. Can someone help me? Thanks in advance!&lt;/STRONG&gt;&lt;BR /&gt;
%let begin_date='07jan2019'd;
%let end_date='11jan2019'd;
%macro prior_wk_n;
%do day=%sysfunc(inputn(&amp;amp;begin_date,date9.)) %to %sysfunc(inputn(&amp;amp;end_date,date9.));
proc sql;
CREATE table s&amp;amp;day. AS
(select team, count(sales)/count(distinct date) as avg_sales
from have(where=(intnx('day', &amp;amp;day., -6)&amp;lt;=datepart(date)&amp;lt;=intnx('day', &amp;amp;day., -1)))&amp;nbsp;
group by 1 
;QUIT;
%end;
%prior_wk_n;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 16 Jan 2019 06:27:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526872#M143577</guid>
      <dc:creator>grace999</dc:creator>
      <dc:date>2019-01-16T06:27:44Z</dc:date>
    </item>
    <item>
      <title>Re: DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526880#M143578</link>
      <description>&lt;P&gt;Please provide some example data (in a data step with datalines, see my footnotes), and what you expect out of it.&lt;/P&gt;</description>
      <pubDate>Mon, 14 Jan 2019 08:41:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526880#M143578</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-01-14T08:41:33Z</dc:date>
    </item>
    <item>
      <title>Re: DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526897#M143583</link>
      <description>&lt;P&gt;prior week data sample:&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;team&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;sale_amount&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;1-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$ 393&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;1-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$ 178&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;2-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$ 105&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;3-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 65&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;3-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;3-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 27&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;4-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;5-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 21&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;5-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;1-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;1-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$ 171&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;2-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;2-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;3-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 26&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;4-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;5-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp; 14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;5-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The prior week summary for date Jan, 8th, 2019 should be:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;team&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;prior_wk_daily_n_sales&lt;/TD&gt;&lt;TD&gt;prior_wk_daily_dollar_sales&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;8-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.8&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 172&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;8-Jan-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.6&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;$&amp;nbsp;&amp;nbsp; 88.60&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 14 Jan 2019 11:31:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526897#M143583</guid>
      <dc:creator>grace999</dc:creator>
      <dc:date>2019-01-14T11:31:56Z</dc:date>
    </item>
    <item>
      <title>Re: DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526899#M143584</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input team $ date:date9. sale_amount:comma8.;
datalines;
a 1-Jan-19  $393
a 1-Jan-19  $178
a 2-Jan-19  $105
a 3-Jan-19  $65
a 3-Jan-19  $33
a 3-Jan-19  $27
a 4-Jan-19  $23
a 5-Jan-19  $21
a 5-Jan-19  $15
b 1-Jan-19  $90
b 1-Jan-19  $171
b 2-Jan-19  $98
b 2-Jan-19  $20
b 3-Jan-19  $26
b 4-Jan-19  $16
b 5-Jan-19  $14
b 5-Jan-19  $8
;

proc sql;
   create table want as
   select team,
          today() as ReportDate format=date9.,
          count(sale_amount)/count(distinct date) as prior_wk_daily_n_sales,
          sum(sale_amount)/count(distinct date) as prior_wk_daily_dollar_sales format=dollar8.
   from have
   group by team;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 14 Jan 2019 12:09:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526899#M143584</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-01-14T12:09:19Z</dc:date>
    </item>
    <item>
      <title>Re: DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526900#M143585</link>
      <description>&lt;P&gt;If your analysis is grouped along calendar weeks, you can use the week() function to your advantage:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select
  team,
  week(date) as week,
  count(distinct date) as count_days,
  count(*) as count_sales,
  sum(sale_amount) as sum_sales,
  calculated count_sales / calculated count_days as prior_wk_daily_n_sales,
  calculated sum_sales / calculated count_days as prior_wk_daily_dollar_sales,
  intnx('week',max(date),1,'b') + 2 as date format=yymmddd10.
from have
group by team, week;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 14 Jan 2019 12:09:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/526900#M143585</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-01-14T12:09:26Z</dc:date>
    </item>
    <item>
      <title>Re: DO loop with date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/527620#M143878</link>
      <description>&lt;P&gt;Thanks for providing suggestions, but that's not what I am looking for. I try to&amp;nbsp; grab summary table from prior week or month of the know dates. For example,&amp;nbsp;the known date is from Jan. 7th to Jan 11th 2019, but I am trying to get summary data from prior week (&lt;SPAN&gt;Jan. 1st to Jan 5th 2019) for Jan 7th; prior week(Jan 2nd to Jan 6th) for Jan 8th etc. so I was trying to use the %do loop.&lt;/SPAN&gt;&amp;nbsp;Please referring to my code. I need help with the do loop function, where statement to grab data from prior week.&lt;BR /&gt;%let begin_date='07jan2019'd;&lt;BR /&gt;%let end_date='11jan2019'd;&lt;BR /&gt;%macro prior_wk_n;&lt;BR /&gt;%do day=%sysfunc(inputn(&amp;amp;begin_date,date9.)) %to %sysfunc(inputn(&amp;amp;end_date,date9.));&lt;BR /&gt;%let name=day(&amp;amp;day.);&lt;BR /&gt;proc sql;&lt;BR /&gt;CREATE table s&amp;amp;name. AS&lt;BR /&gt;(select team, count(sale_amount)/count(distinct date) as avg_sales&lt;BR /&gt;from have(where=(intnx('day', &amp;amp;day., -7)&amp;lt;=date&amp;lt;=intnx('day', &amp;amp;day., -1)))&lt;BR /&gt;group by 1&lt;BR /&gt;;QUIT;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;BR /&gt;%prior_wk_n;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 09:45:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-loop-with-date/m-p/527620#M143878</guid>
      <dc:creator>grace999</dc:creator>
      <dc:date>2019-01-16T09:45:37Z</dc:date>
    </item>
  </channel>
</rss>

