您好,我试图将每个类别ID仅显示一次,并将每个类别ID的总TransactionAmount总计。
然后我将其显示在网格中,或者希望将其显示在图表中。
这是我尝试过的不起作用的sql代码
select * , SUM(TransactionAmount)
from UserBudgetTransaction
GROUP BY CategoryID
答案 0 :(得分:3)
GROUP BY
的正确语法是:
select CategoryID, SUM(TransactionAmount)
from UserBudgetTransaction
group by CategoryID;
SELECT *
通常不适用于GROUP BY
(在GROUP BY
列包含功能依赖项的情况下,这是一种情况)。通常,SELECT
中唯一不是聚合函数参数的列应该是GROUP BY
键。
答案 1 :(得分:2)
选择的列数也必须在group by中(对于大多数dbms),您已经选择了所有列,但是仅将CategoryID放在group by中,这是错误的,所以正确的如下所示
select CategoryID, SUM(TransactionAmount)
from UserBudgetTransaction
GROUP BY CategoryID