我在存储过程#Temp_SalesOrder
中有一个临时表SP_SalesOrder
,它有5列。我正在使用游标来循环此临时表插入。
我正在通过另一个存储过程Sp_SalesOrderValues
在此临时表(前4列)中插入值。我需要将此临时表中的最后一列更新为在游标变量中选择的值。但是我在临时表中没有更新查询条件的唯一列。插入是逐行进行的,因此我需要按行更新此列值。
我正在共享我的查询,我需要像下面的结构那样得到答案,但是我总是得到80作为整个列的值...
请帮助..
IF OBJECT_ID('tempdb..#Temp_SalesOrder ') IS NOT NULL
DROP TABLE #Tbl_SalesOrderChildRef
CREATE TABLE #Temp_SalesOrder
(
Pk INT,
ProductMasterId INT,
Name VARCHAR(50),
AllocatableQty NUMERIC(18, 0),
SalesOrderSkuRate NUMERIC(18, 3) NULL
)
-- Selecting SalesOrderSkuRate using a select query
OPEN @curSalesOrderChild
FETCH NEXT FROM @curSalesOrderChild INTO @productMasterId, @Name, @SalesOrderSkuRate
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #Tbl_SalesOrderChildRef
EXEC Sp_SalesOrderValues
@SkuMasterID = @productMasterId,
@Name = @Name,
@AllocatableQty = @AllocatableQty
UPDATE #Tbl_SalesOrderChildRef
SET SalesOrderSkuRate = @SalesOrderSkuRate ---Need a where condition for updating row by row now it updating last SalesOrderSkuRate to entire column that is my issue
FETCH NEXT FROM @curSalesOrderChild INTO @productMasterId, @Name, @AllocatableQty, @SalesOrderSkuRate
END
CLOSE @curSalesOrderChild
DEALLOCATE @curSalesOrderChild
输出为:
pk ProductMasterId Name AllocatableQty SalesOrderSkuRate
-------------------------------------------------------------------
1 50 A1 10 25
2 81 A2 20 75
3 92 A3 30 80