0

你好我写这个sql查询来更新一个表。查询是:

Update Product Set MakeId = (Select Distinct v.Id from VehicleCompany v, Car_Window c, product p Where p.ProductSKU = c.mf_part_no
AND c.make = v.Name
Group By v.Id)

但是每当我运行此查询时,它都会出现以下错误:

消息 512,级别 16,状态 1,第 1 行子查询返回超过 1 个值。当子查询跟在 =, !=, <, <= ,

, >= 或当子查询用作表达式时。

我可以知道我在哪里犯了错误吗?

提前致谢

4

3 回答 3

0

Select Distinct可以返回多个值。要为MakeId您的子查询分配一个值,必须只返回 1 个值。

于 2013-01-17T11:54:22.020 回答
0

Select Distinct v.Id
from VehicleCompany v, Car_Window c, product p
Where p.ProductSKU = c.mf_part_no
AND c.make = v.Name

您应该看到它带回超过 1 行,您需要修复这部分查询

如果您确信 ID 将始终保持不变,则更改此将为您修复它:

Select top 1 Distinct v.Id from VehicleCompany v, Car_Window c, product p
Where p.ProductSKU = c.mf_part_no
AND c.make = v.Name
于 2013-01-17T11:55:23.517 回答
0

我不确定这是否是你想要的。你可以写(Select Top 1 ...)

于 2013-01-17T11:56:11.423 回答