0
您好I'have以下结果为光标多次查询插入使用光标
PONumber Code QuantityReceived
0200073 200757 4
0200073 201052 2
0200073 201435 2
0200073 200757 10
0200073 201056 1
0200073 202200 2
我使用的程序是
BEGIN
DECLARE @PN nvarchar(30);
DECLARE @TCODE nvarchar(50);
DECLARE @REQNTY INT;
DECLARE @LOTID nvarchar(50);
DECLARE @QUANTITY nvarchar(50);
DECLARE CUR CURSOR FOR
SELECT PONumber,Code,QuantityReceived
FROM Temp_stock2
--GROUP BY PONumber,Code,QuantityReceived
OPEN CUR
FETCH NEXT FROM CUR INTO @PN,@TCODE,@REQNTY
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
WHILE(@REQNTY>0)
BEGIN
SELECT TOP(1)@LOTID=RR1038_LotEntry.ID,@QUANTITY=RR1038_LotEntry.Quantity
FROM [dbo].RR1038_LotEntry
INNER JOIN Temp_stock2 on Temp_stock2.LotID=RR1038_LotEntry.ID
WHERE RR1038_LotEntry.Quantity>0 AND [email protected]
ORDER BY RR1038_LotEntry.Quantity DESC;
IF (@QUANTITY >= @REQNTY)
BEGIN
-- UPDATING LOT ENTRY TABLE
UPDATE [dbo].RR1038_LotEntry
SET RR1038_LotEntry.Quantity = [email protected],LastUpdated=GETDATE()
FROM [dbo].RR1038_LotEntry
INNER JOIN Temp_stock2 on Temp_stock2.LotID=RR1038_LotEntry.ID
WHERE RR1038_LotEntry.ID [email protected] AND [email protected];
-- INSERTING THE SAME DATA TO LOT HISTORY TABLE
INSERT INTO [dbo].RR1038_LotHistory
(StoreID,LotEntryId,Quantity,ReferenceNumber,ReferenceType,LastUpdated)
SELECT
0 as StoreID ,Temp_stock2.LotID,
@REQNTY,
Temp_stock2.PurchaseOrderid as ReferenceNumber,
3 as ReferenceType,GETDATE() as LastUpdated
FROM [dbo].RR1038_LotEntry
INNER JOIN Temp_stock2 on Temp_stock2.LotID=RR1038_LotEntry.ID
WHERE RR1038_LotEntry.ID [email protected] AND [email protected];
SET @REQNTY=0;
END
ELSE
BEGIN
-- INSERTING THE SAME DATA TO LOT HISTORY TABLE
INSERT INTO [dbo].RR1038_LotHistory
(StoreID,LotEntryId,Quantity,ReferenceNumber,ReferenceType,LastUpdated)
SELECT
0 as StoreID ,Temp_stock2.LotID,
@REQNTY,
Temp_stock2.PurchaseOrderid as ReferenceNumber,
3 as ReferenceType,GETDATE() as LastUpdated
FROM [dbo].RR1038_LotEntry
INNER JOIN Temp_stock2 on Temp_stock2.LotID=RR1038_LotEntry.ID
WHERE RR1038_LotEntry.ID [email protected] AND [email protected];
SET @[email protected]@QUANTITY;
-- UPDATING LOT ENTRY TABLE
UPDATE [dbo].RR1038_LotEntry
SET RR1038_LotEntry.Quantity = 0,LastUpdated=GETDATE()
FROM [dbo].RR1038_LotEntry
INNER JOIN Temp_stock2 on Temp_stock2.LotID=RR1038_LotEntry.ID
WHERE RR1038_LotEntry.ID [email protected] AND [email protected];
END
END
END
FETCH NEXT FROM CUR INTO @PN,@TCODE,@REQNTY
END
CLOSE CUR
DEALLOCATE CUR
END
虽然我执行我得到的程序针对CODE的特定行的重复插入存在两次。
当值不同(日期和中间的数值) – artm
你找到程序的任何问题,他们不重复? –
是的,你是对的,我一直在拍卖表中盲目搜索,没有提供任何具体的输入,改变了它。谢谢 –