Andyy Hu
Andyy Hu

Reputation: 59

How would I get a running total by Year

I'm trying to create a running total for the Sales by year. I inputted the data and created a new variable Year. I tried using retain function but do not know how to reset it to 0 when there is a new year.

data WeeklySales5;
    infile datalines dlm=',' DSD firstobs=2;
    input Date :MMDDYY10. Sales :Dollar8.;
    format Date :MMDDYY10.;
    year = year(Date);
    retain TotalSales;
    TotalSales = sum(TotalSales,Sales);
    datalines;
Date, Sales
1/5/2010,"$7,580.42 "
1/12/2010,"$7,753.55 "
10/22/2013,"$9,545.17 "
10/29/2013,"$9,323.54 "
5/12/2015,"$8,678.97 "
5/19/2015,"$8,601.38 "
;
run;

Upvotes: 0

Views: 71

Answers (1)

PeterClemmensen
PeterClemmensen

Reputation: 4937

Do something like this

data WeeklySales5;
infile datalines dlm=',' DSD firstobs=2;
input Date :MMDDYY10. Sales :Dollar8.;
year = year(Date);
format Date :MMDDYY10.;
datalines;
Date, Sales
1/5/2010,"$7,580.42 "
1/12/2010,"$7,753.55 "
10/22/2013,"$9,545.17 "
10/29/2013,"$9,323.54 "
5/12/2015,"$8,678.97 "
5/19/2015,"$8,601.38 "
;
run;

data want;
   set WeeklySales5;
   by year;

   if first.year then TotalSales = 0;
   TotalSales = sum(TotalSales,Sales);

   retain TotalSales;
run;

Upvotes: 1

Related Questions