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 サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、

、>=、またはサブクエリが式として使用されている場合。

どこで間違いを犯しているか分かりますか?

前もって感謝します

4

3 に答える 3

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

複数の行が返されるので、クエリのこの部分を修正する必要があります。

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 に答える
0

Select Distinct複数の値を返すことができます。MakeIdサブクエリに値を割り当てるには、値を1 つだけ返す必要があります。

于 2013-01-17T11:54:22.020 に答える