Пока l oop не выбирает нужную запись после обновления временной таблицы - PullRequest
0 голосов
/ 01 мая 2020

У меня есть вложенное время l oop, чтобы выбрать некоторые записи акций из таблицы #stock. Если запас истощен, мне нужно перейти к следующей соответствующей записи запаса. Мой l oop продолжает выбирать одну и ту же строку из временной таблицы. Даже если я удаляю строку и проверяю внутри вложенного Начало ... Конец.

WHILE @DemandOutstandingQty > 0 --Check for stock
    BEGIN

SET ROWCOUNT 1
    SELECT @StockExpirationDate = ExpirationDate, @StockRemainingQty = RemainingQty, @StockLotNum = LotNum, @StockID = StockGUID
    FROM #stock WHERE PartNum = @DemandPartNum AND RemainingQty > 0
    ORDER BY ExpirationDate ASC

WHILE @StockID IS NOT NULL
BEGIN
SET ROWCOUNT 0

--several other if blocks here end with demand going to 0 and breaking to the outer While

IF (@StockExpirationDate > @DemandDueDate AND @StockRemainingQty < @DemandOutstandingQty) --Stock not enough to meet demand
    BEGIN
        UPDATE #Stock SET RemainingQty = 0 WHERE StockGUID = @StockID;
        --DELETE FROM #stock WHERE StockGUID = @StockID; --Tried this also
        SET @DemandOutstandingQty = @DemandOutstandingQty - @StockRemainingQty; 
        Print @@StockID --The stock record with no remaining stock or deleted
        Select * from #stock where StockGUID = @StockID; --returns no rows / updated remaining qty
    END;

SET ROWCOUNT 1
    SELECT @StockExpirationDate = ExpirationDate, @StockRemainingQty = RemainingQty, @StockLotNum = LotNum, @StockID = StockGUID
    FROM #stock 
    WHERE PartNum = @DemandPartNum AND RemainingQty > 0 AND StockGUID <> @StockID
    ORDER BY ExpirationDate ASC
    Print @StockID --Its the same ID, not moving to the next stock record

SET ROWCOUNT 0

END --@StockID while

--does some more stuff

END --Outer While

Может ли это быть из-за вложенного начала ... конца?

1 Ответ

0 голосов
/ 01 мая 2020

Разрешено.

Переключено на WHILE @StockRemainingQty> 0 для условия и задает '@StockRemainingQty = 0, когда запас заканчивается.

Спасибо HABO за заголовки. @stockID не менялся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...