【发布时间】:2021-11-01 06:40:39
【问题描述】:
我正在尝试获取每日数据(并非每天都有数据)并从星期一开始按周求和。下面是我拥有的数据的一个非常小的样本。该代码与此处所需的求和目的无关。
数据有:
| ID | PKG | Revdt | code | QTY |
|---|---|---|---|---|
| 70 | 17AB | 02AUG2021:00:00:00 | 01 | 7 |
| 70 | 17AB | 04AUG2021:00:00:00 | 02 | -10 |
| 70 | 17AB | 05AUG2021:00:00:00 | 01 | 8 |
| 70 | 17AB | 10AUG2021:00:00:00 | 01 | 7 |
| 70 | 17AB | 1QAUG2021:00:00:00 | 01 | 7 |
| 73 | 12AC | 02AUG2021:00:00:00 | 09 | 0 |
| 73 | 17AC | 07AUG2021:00:00:00 | 01 | 7 |
需要数据
| ID | PKG | Revdt | code | QTY |
|---|---|---|---|---|
| 70 | 17AB | 02AUG2021:00:00:00 | 01 | 5 |
| 70 | 17AB | 09AUG2021:00:00:00 | 01 | 14 |
| 73 | 12AC | 02AUG2021:00:00:00 | 01 | 7 |
我已经尝试了以下
Proc sql;
connect to odbc (dsn='' id='' p='');
create table work.WeeklySum as select distinct * from connection to odbc
(select ID, Pkg, datepart(week, revdt), code, sum(qty)
from datebase
group by datepart(week, revdt) );
disconnect from odbc;
quit;
但是当我运行它时,它说“错误:proc sql 要求任何创建的表至少有 1 列”
【问题讨论】:
-
运行了吗?你收到错误信息了吗?什么讯息?你得到错误的结果了吗?怎么错了?
-
对其进行了编辑以包含错误消息“错误:proc sql 要求任何创建的表至少有 1 列”。它正在运行。只是不返回任何东西
-
您的查询确实有 5 个“列”,但其中两个没有名称。您确定您的 SQL-Server 特定查询有效吗?您可以尝试使用其他连接数据库的方式吗?
-
所以当我删除 datepart(week, revdt) 并只使用 revdt 时,删除 sum() 并删除组,它会拉入所有数据。所以问题似乎出在添加日期部分时,因为我只使用日期部分而没有太阳但它仍然返回相同的错误
-
intnx是一个 SAS 函数,所以它肯定不会在那里工作。
标签: sql-server date sas aggregate cumulative-sum