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

时间:2014-04-08 07:27:35

标签: sql sql-server

我要表: DeviceInstaceDevice

它们与Foreign Key

上的DeviceInstance.DeviceId=Device.Id相关联

我有SQL查询:

select d.CatalogNo,d.Manufacturer,d.Name, sum(quantity) 
from DeviceInstance di 
full join Device d 
on d.Id=di.DeviceId 
group by di.DeviceId

我需要做一些包含以下内容的摘要:

  • 目录号
  • 制造商
  • 设备名称
  • 设备数量(这些deviceIds的quntity列中值的总和)

但我面临一些Grouping by次发布。

我尝试拒绝这样的错误:

Column 'Device.CatalogNo' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

我知道我可以按CatalogNo进行分组,但随后十个数量的总和会返回错误的数字。

有谁能建议我如何修复它?

2 个答案:

答案 0 :(得分:3)

只需修改GROUP BY子句:

group by d.DeviceId, d.CatalogNo,d.Manufacturer,d.Name

答案 1 :(得分:1)

您需要在分组条款中添加d.CatalogNo,d.Manufacturer

试试这个

select d.CatalogNo,d.Manufacturer,d.Name, sum(quantity) 
from DeviceInstance di 
full join Device d 
on d.Id=di.DeviceId 
group by d.Name, d.CatalogNo,d.Manufacturer