4

最初に、1 つの列を持つメモリ内テーブルを作成し、それらの列の値を使用して、別のテーブルとの内部結合を作成しました。そうしている間、私はこのエラーが発生しています:

スカラー変数@Temporaryを宣言する必要があります。

どこが間違っているのか誰でも説明できますか?

DECLARE @ID INT
Declare @Temporary Table
(
AccountID INT
)  

DECLARE cur CURSOR FOR

SELECT DISTINCT ParentItem from ItemBillOfMaterial

OPEN cur

FETCH NEXT FROM cur INTO @ID;

WHILE @@FETCH_STATUS = 0

BEGIN 

Insert into @Temporary Values(@ID)  

FETCH NEXT FROM cur INTO @ID;

END

SELECT UOM FROM Item

INNER JOIN @Temporary

ON Item.ItemID=@Temporary.AccountID

CLOSE cur;

DEALLOCATE cur;
4

3 に答える 3

0

そのためにカーソルまたは一時テーブルが必要かどうかはわかりませんが、これは1つのクエリでほぼ同じだと思います

SELECT UOM FROM Item
INNER JOIN (
  SELECT DISTINCT ParentItem AccountID 
  from ItemBillOfMaterial
) Temporary
ON Item.ItemID=Temporary.AccountID
于 2013-04-23T11:59:15.400 に答える