-1

こんにちは、いくつかの決定を下して、他のテーブルの列で列を更新したいです。これが私のコードです

update STOCKS 
    set SE_QTY_L2 = (   

      select SE_QTY_L2  

      from STOCKS  
      join 
      VITEM on VITEM.Code= STOCKS.SE_ITEM_CODE 
      and SE_UNIT = VITEM.[First Unit] and VITEM.[Max Level] = 3  


      )   from STOCKS    
      join 
      VITEM on VITEM.Code= STOCKS.SE_ITEM_CODE 
      and SE_UNIT = VITEM.[First Unit] and VITEM.[Max Level] = 3  

このクエリを実行すると、次のエラーがスローされます。

エラー

サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。

4

1 に答える 1

0

実行したときの出力は何ですか。

SELECT Code, [First Unit], [Max Level]
FROM Vitem
WHERE [Max Level] = 3
HAVING COUNT(*) > 1

複数の行がある場合は、UPDATE基準に対して複数の一致が返されることを意味します。これが、サブクエリが爆発する理由です。ソーステーブルから行の一意の組み合わせを探す必要があります。

于 2013-01-30T11:32:21.493 に答える