您好我写这个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)
但每当我运行此查询时,它都会出现以下错误:
Msg 512,Level 16,State 1,Line 1 Subquery返回的值超过1 值。当子查询遵循=,!=,<,< =,
时,不允许这样做,> =或当子查询用作表达式时。
我可以知道我在哪里弄错了吗?
先谢谢
答案 0 :(得分:0)
您的Select Distinct
可以返回多个值。要为MakeId
分配值,子查询必须只返回1个值。
答案 1 :(得分: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
答案 2 :(得分:0)
我不确定这是不是你想要的。你可以写(Select Top 1 ...)