Reputation: 59
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
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