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

Sql 列未包含在聚合函数或GROUP BY子句中,sql,sql-server,Sql,Sql Server,我必须: 设备安装空间和设备 它们通过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 因此,我需要做一些总结,包括: 目录号 制造商 设备名 设备数量(这些设备ID的数量列

我必须:
设备安装空间
设备

它们通过
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
因此,我需要做一些总结,包括:

  • 目录号
  • 制造商
  • 设备名
  • 设备数量(这些设备ID的数量列中的值之和)
但我面临着一些按问题分组的问题

我所有的努力都是拒绝我犯下这样的错误:

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
进行分组,但是如果数量加起来十个,就会返回错误的数字


有人能建议我如何修复它吗?

只需修改GROUP BY子句:

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

您需要在GROUPBY子句中添加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