SQL Server子查询返回的值超过1。这是不允许的

时间:2019-05-31 11:12:12

标签: sql-server

我有这个查询

cend()

但是当我运行查询时出现此错误

  

信息512,第16级,状态1,第4行   子查询返回的值超过1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

为什么会出现此错误,以及如何解决。预先感谢。

1 个答案:

答案 0 :(得分:2)

group by自然会产生多于一行,而select语句中的子查询只需要一行。

您需要以外部查询与内部查询相关的方式更改分组依据。

诀窍是添加awmat.FK_Item = item.Id

按如下所示更改内部查询

select sum(ODRM.[QuantityBooking]-ODRM.ChangeLocationQty) 
FROM [dbo].[OrderDetailsRawMaterial] ODRM
inner join RawMaterial rawmat on rawmat.id=[FK_RawMaterial]
Where  ODRM.[QuantityBooking] >ODRM.ChangeLocationQty
  and awmat.FK_Item = item.Id