当我将语句从一个订单更改为一个组时,我正在努力解决这个错误,它的目标是获得满足查询的所有记录的总和。
我在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子句中。
任何人都可以帮我实现这个目标吗?
答案 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