GROUP by aggregation不计算SUM
GROUP by aggregation does not calculate SUM
我必须根据 WERKS
、DATUM
和 UZEIT
在 AMUNT
字段的查询 SUM 中进行聚合
我试图建立一个小组但没有成功
我有这样的错误:
我的代码有什么问题?
那是我的 ABAP 代码:
DATA: gt_compr TYPE TABLE OF yrt_h_sales
SELECT werks, extnb, datum, uzeit, sumvt, deprt, dpext, SUM( amunt ) AS amunt
INTO CORRESPONDING FIELDS OF TABLE @gt_compr
FROM yrt_h_sales
WHERE werks IN @so_werks
AND datum IN @so_datum
GROUP BY werks, datum, uzeit.
在我更正并执行此操作后,代码如下所示:
SELECT werks, datum, uzeit, extnb, deprt, dpext, SUM( amunt ) AS amunt
INTO CORRESPONDING FIELDS OF TABLE @gt_compr
FROM yrt_h_sales
WHERE werks IN @so_werks
AND datum IN @so_datum
GROUP BY werks, datum, uzeit, extnb, deprt, dpext.
所以我不再有编译错误,但聚合仍然无法正常工作!我在 AMUNT
列
上有一个没有求和的 43 行结果
P.S。这是我的 table 的结构:
您的观察结果与 documentation 一致(以及我迄今为止在我使用过的任何其他 RDBMS 中看到的结果):
If aggregate expressions are used, any column identifiers that are not
included as arguments of an aggregate function must be included after
the addition GROUP BY
.
以时间字段 UZEIT
为例:您可以告诉系统通过将其添加到 GROUP BY
来汇总(在您的情况下,总结)同一时间点的所有金额子句,或者您也可以应用聚合函数(SUM
在这里没有任何意义,但 MIN
可能),或者您可以完全省略该字段。您可以 not 让它悬空而无需进一步说明 - 该字段要么需要是 GROUP BY
创建的新键集的一部分,要么必须对其应用聚合函数以便系统知道如何处理组中可能出现的多个数据集。
(这是基本 SQL 顺便说一句,不是 ABAP-specific 知识。)
删除相应的字段并将结果放入 TABLE
我必须根据 WERKS
、DATUM
和 UZEIT
在 AMUNT
字段的查询 SUM 中进行聚合
我试图建立一个小组但没有成功
我有这样的错误:
我的代码有什么问题?
那是我的 ABAP 代码:
DATA: gt_compr TYPE TABLE OF yrt_h_sales
SELECT werks, extnb, datum, uzeit, sumvt, deprt, dpext, SUM( amunt ) AS amunt
INTO CORRESPONDING FIELDS OF TABLE @gt_compr
FROM yrt_h_sales
WHERE werks IN @so_werks
AND datum IN @so_datum
GROUP BY werks, datum, uzeit.
在我更正并执行此操作后,代码如下所示:
SELECT werks, datum, uzeit, extnb, deprt, dpext, SUM( amunt ) AS amunt
INTO CORRESPONDING FIELDS OF TABLE @gt_compr
FROM yrt_h_sales
WHERE werks IN @so_werks
AND datum IN @so_datum
GROUP BY werks, datum, uzeit, extnb, deprt, dpext.
所以我不再有编译错误,但聚合仍然无法正常工作!我在 AMUNT
列
P.S。这是我的 table 的结构:
您的观察结果与 documentation 一致(以及我迄今为止在我使用过的任何其他 RDBMS 中看到的结果):
If aggregate expressions are used, any column identifiers that are not included as arguments of an aggregate function must be included after the addition
GROUP BY
.
以时间字段 UZEIT
为例:您可以告诉系统通过将其添加到 GROUP BY
来汇总(在您的情况下,总结)同一时间点的所有金额子句,或者您也可以应用聚合函数(SUM
在这里没有任何意义,但 MIN
可能),或者您可以完全省略该字段。您可以 not 让它悬空而无需进一步说明 - 该字段要么需要是 GROUP BY
创建的新键集的一部分,要么必须对其应用聚合函数以便系统知道如何处理组中可能出现的多个数据集。
(这是基本 SQL 顺便说一句,不是 ABAP-specific 知识。)
删除相应的字段并将结果放入 TABLE