私はこのクエリに行き詰まっています: 一時テーブル #tmpHierarchy の各行を更新し、pLevel = 3 を設定したいのですが、行にまだレベルが設定されておらず (= 99)、その [可能な] 親アイテムの 1 つが含まれている場合一時テーブルであり、レベル = 2 です。
テーブル items にはすべてのアイテムが含まれ、テーブル ParentItems にはアイテム間のリンクが含まれます (フィールド Item、ParentItem)
何かのようなもの:
UPDATE #tmpHierarchy SET pLevel = 3 WHERE pLevel = 99
AND (
(
SELECT Item FROM Items as IT LEFT JOIN ParentItems as PTS ON PTS.ItemID = IT.ID
WHERE IT.ID = #tmpHierarchy.ItemID
)
IN
(
SELECT Item FROM #tmpHierarchy WHERE pLevel = 2
)
)
これは私が達成したいことですが、返されます
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
...明らかな理由で、IN 句 (?) に複数の値があります。
この問題に対するいくつかの提案をいただければ幸いです。
よろしく、
オーク