안녕하세요 다음 저장 프로 시저가 있습니다T-SQL에서 중첩 된 경우에는 조건
,이 절차가 (해야)하는 일 업데이트가이 저장 프로 시저가 POS 응용 프로그램입니다CREATE PROCEDURE update_stock_level
(
@ItemID int,
@Quantity int = 1,
@Return int = 0
)
AS
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
입니다 (증가 또는 감소)를 재고 수준은 품목 ID 및 품목 수량에 따라 결정됩니다.
항목 ID -> 프런트 엔드에서 선택한 항목의 ID입니다. 수량 -> 얼마나 많은 품목 반환 -> 반환 값이 '0'이면 거짓으로 표시되고, '1'이면 반품되지 않음을 의미합니다. 즉, 상품이 반환되는 경우 재고가 증가해야 함을 의미합니다 반환 된 수량만큼. qantity 매개 변수에 아무 것도 전달되지 않으면 기본값은 1입니다.
이제 내 문제는 재고 수준이 줄었지만 반환 할 때 증가하지 않는다는 것입니다.
@quantity = 0 .. set Quantity = Quantity - @Quantity? – Stoleg
오, 고맙습니다. 내가 뭔가를 했어야 만하기 전에 그런 식으로 아니 었습니다. :) –
@Stoleg이 말했듯이, 수량 = 0 인 경우 첫 번째 조건은 아무런 효과가 없습니다. 그리고 quantity = 0이거나 그렇지 않으면 여러분은 똑같이하고 있습니다! – Logar