SQL にリストを挿入しようとしています。TableName1 と TableName2 の JOIN クエリから 2 つの列値のリストを取得します。ProductId の数を使用して、ProductId と Quantity を Table3 に挿入しています。しかし、ProductId が null であるため、挿入は失敗します。以下のように、結合クエリから ProductId と Quantity の 2 つの値を取得します。このリストを Table3 に挿入する方法 ??
リスト
ProductId Quantity
56 1
58 2
SQL:
DECLARE @productid int
DECLARE @quantity int
SET @productid = SELECT A.[ProductId],
A.[Quantity] FROM [TableName1] A
INNER JOIN [TableName2] B
ON A.[OrderId] = B.[OrderId] WHERE B.[CustomerId] = 1 AND A.[OrderId] = 68
SET @quantity = SELECT
A.[Quantity] FROM [TableName1] A
INNER JOIN [TableName2] B
ON A.[OrderId] = B.[OrderId] WHERE B.[CustomerId] = 1 AND A.[OrderId] = 68
DECLARE @i int = 0
DECLARE @pcount int = (SELECT COUNT(ProductId) FROM [TableName1] A
INNER JOIN [TableName2] B
ON A.[OrderId] = B.[OrderId] WHERE B.[CustomerId] = 1 AND
A.[OrderId] = 68)
WHILE @i <= @pcount
BEGIN
SET @i = @i + 1
DECLARE @productname nvarchar(MAX)
SET @productname = (SELECT [ProductName] FROM [TableName4] WHERE [ProductId]= @productid)
DECLARE @PRate decimal
SET @PRate =(SELECT [SpecialPrice] FROM [TableName5]
WHERE [ProductId]=@productid)
DECLARE @SPrice decimal
SET @SPrice = @PRate * @quantity
INSERT INTO [Table3]
[ProductId],[ProductName],[Quantity],[Price],[TotalAmount])
VALUES
(@productid,@productname,@quantity,@PRate,@SPrice)
END
ループ内の製品 ID と数量を Table3 に渡して挿入する方法。
ループ中にコードに間違いがありましたか??