У меня есть временная таблица #Temp_SalesOrder
в хранимой процедуре SP_SalesOrder
, и она имеет 5 столбцов.Я использую курсор для циклического добавления этой временной таблицы.
Я вставляю значения в эту временную таблицу (первые 4 столбца) с помощью другой хранимой процедуры Sp_SalesOrderValues
.Мне нужно обновить последний столбец в этой временной таблице как значение, выбранное в переменной курсора.Но у меня нет уникальных столбцов во временной таблице, где условие для запроса на обновление.Вставка происходит строка за строкой, поэтому мне нужно обновить значение этого столбца как строку.
Я делюсь своим запросом Мне нужно получить ответ, подобный приведенной ниже структуре, но я всегда получаю 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