我试图计算下面的查询SQL服务器上运行超过总,分
select
a.ICode, MONTH(a.VDate), YEAR(a.vdate)
, sum(isnull(a.qty, 0))
, sum(isnull(a.qty, 0)) OVER (partition by a.icode order by a.icode) AS 'total'
from
t_Stock as a
group by
a.ICode, MONTH(a.VDate), YEAR(a.vdate)
order by
a.icode, YEAR(a.vdate), MONTH(a.VDate)
运行总计但我得到一个错误:
Msg 8120, Level 16, State 1, Line 3
Column 't_Stock.Qty' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
为什么“t_Stock.Qty
”必须在GROUP BY
子句中,因为我已经在使用聚合函数(Sum(a.Qty))
?
一些演示数据:
icode vtype qty vdate
32114 Sales -2 2013-06-03 18:09:17.953
33459 Sales -1 2013-06-03 19:39:59.843
34446 Sales -1 2013-06-03 20:46:17.030
39914 Tra -3 2014-01-07 13:02:31.000
30899 Sales -1 2013-06-04 11:48:06.267
25676 Sales -3 2013-06-04 17:34:01.470
32126 Sales -1 2013-06-04 18:12:44.267
34688 Sales -1 2013-06-04 18:40:52.750
31550 Sales -1 2013-06-04 19:26:40.937
32795 Sales -1 2013-06-05 12:03:00.250
@ M.Ali,我选择的答案这确实解决了问题,其余的我没有。 –