不包含在聚合函数或GROUP BY子句中

时间:2015-06-19 18:25:53

标签: sql

当我将语句从一个订单更改为一个组时,我正在努力解决这个错误,它的目标是获得满足查询的所有记录的总和。

我在ServiceConsumer_t中的两个表ServiceConsumer_T和ServiceUsage_t都是消费者详细信息:

ID                                      Name
032159DA-9BD6-49F0-8D12-5806DD17AE4B     40791010
05EECE4D-9E46-420A-9EE8-1605A34A1BE9     20002810
07C9EDB9-CF1C-4F32-83D5-4BE0293E626F     20019010
0AB09B43-F695-4314-9674-A6B34254A1F0     20002700
0FE8F929-D33C-4CA7-A0FA-0C804EDFE29C     20002210
ServiceUsage_t中的

是客户的动向:

CostCenterPath                          Cardinality
{032159DA-9BD6-49F0-8D12-5806DD17AE4B}  282
{032159DA-9BD6-49F0-8D12-5806DD17AE4B}  9
{032159DA-9BD6-49F0-8D12-5806DD17AE4B}  555
{05EECE4D-9E46-420A-9EE8-1605A34A1BE9}  200
{05EECE4D-9E46-420A-9EE8-1605A34A1BE9}  200
{05EECE4D-9E46-420A-9EE8-1605A34A1BE9}  3
{05EECE4D-9E46-420A-9EE8-1605A34A1BE9}  3
{07C9EDB9-CF1C-4F32-83D5-4BE0293E626F}  1500
{07C9EDB9-CF1C-4F32-83D5-4BE0293E626F}  1
{07C9EDB9-CF1C-4F32-83D5-4BE0293E626F}  1
{07C9EDB9-CF1C-4F32-83D5-4BE0293E626F}  243

这是我正在使用的查询:

Select ServiceConsumer_T.Name, ServiceUsage_T.Cardinality from ServiceConsumer_T    
left join ServiceUsage_T
on ServiceConsumer_T.ID=ServiceUsage_T.CostCenterPath

order by ServiceConsumer_T.Name 

我获得了按名称排序的所有记录,但是当我从一个订单更改为一个组时,我收到错误:

  

专栏' ServiceUsage_T.Cardinality'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

任何人都可以帮我实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

如果按列分组,则必须聚合所有其他列。你想要求和,所以使用那个聚合函数

Select c.Name, sum(u.Cardinality)
from ServiceConsumer_T  c   
left join ServiceUsage_T u on c.ID = u.CostCenterPath
group by c.Name