【发布时间】:2021-10-11 16:59:56
【问题描述】:
我正在尝试从星期一开始每周总结过去 4 周的预测与销售数据。
作为参考,今天是 8 月 6 日,所以我想开始收集他们的每周销售额并预测 7 月 5 日,直到前一周的 7 月 26 日星期一。我最终计划使用 do until last 将这个 4wk 预测总结为一行。按商店和 SKU 分组的语句分组到我可以使用 put 语句创建一个新列的位置,以表明他们的销售量是否高于或低于预期。 例如,让我们假装他们有以下数据
|Mon_DT |STORE |SKU |wk_FCST|wk_Sales|
|05July21:00:00:00 | 5 | abc | 10 | 12 |
|12July21:00:00:00 | 5 | abc | 10 | 16 |
|19July21:00:00:00 | 5 | abc | 10 | 7 |
|26July21:00:00:00 | 5 | abc | 10 | 12 |
直到最后。预测将显示为 40,销售额为 47,如果销售
但是,我无法让 between 语句仅在过去 4 周(从星期一开始)工作。
DATA Getweeks;
StartOversell = intnx('week.2',today(),-4);
endoversell = intnx('week.2',today(),-1);
format StartOversell yymmdd10.;
format endoversell yymmdd10.;
Run;
Proc sql;
connect to odbc (dsn='****' uid='****' pwd='***');
create table work.Forecast1 as select distinct * from connection to odbc
(select MON_DT as DATE, Store_Number as Store, PROD_PKG_ID as SKU, FCST AS WK_FCST, SALES AS WK_sales, DIFF_QTY
From FCST
where Mon_DT >= 'StartOversell'd and Mon_DT <= 'endoversell'd );
disconnect from odbc;
quit;
我也尝试使用宏变量,但没有成功。
【问题讨论】:
-
你必须使用宏变量。
标签: sql-server date sas between proc-sql