T-SQL中的嵌套If条件
您好,我有以下商店程序:T-SQL中的嵌套If条件,sql,tsql,sql-server-2012,Sql,Tsql,Sql Server 2012,您好,我有以下商店程序: 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 = @It
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
此存储过程适用于POS应用程序,此过程的作用(应该做)是根据物料id和物料数量更新(增加或减少)库存水平
ItemID->从前端选择的项目ID。
数量->项目数量
Return->如果Return为“0”,则表示它为false;如果Return为“1”,则表示这不是退货销售;如果Return为“1”,则表示正在退货商品,在这种情况下,库存应增加退货数量。如果没有向qantity参数传递任何内容,则默认值为1
我现在的问题是,库存水平会降低罚款,但在退货时不会增加。只留下
其他部分
部分:
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
或者,您可以在单个状态下执行此操作:
UPDATE Stock
SET Quantity = Quantity - @Quantity * POWER(-1,@Return)
WHERE ItemID = @ItemID
如果@Return=0,则幂(-1,0)=1,则减少库存
如果@Return=1,那么power(-1,1)=-1,那么您就增加库存。只需离开
其他部分
部分:
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
或者,您可以在单个状态下执行此操作:
UPDATE Stock
SET Quantity = Quantity - @Quantity * POWER(-1,@Return)
WHERE ItemID = @ItemID
如果@Return=0,则幂(-1,0)=1,则减少库存
如果@Return=1,那么power(-1,1)=-1,那么您就增加库存。只需离开
其他部分
部分:
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
或者,您可以在单个状态下执行此操作:
UPDATE Stock
SET Quantity = Quantity - @Quantity * POWER(-1,@Return)
WHERE ItemID = @ItemID
如果@Return=0,则幂(-1,0)=1,则减少库存
如果@Return=1,那么power(-1,1)=-1,那么您就增加库存。只需离开
其他部分
部分:
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
或者,您可以在单个状态下执行此操作:
UPDATE Stock
SET Quantity = Quantity - @Quantity * POWER(-1,@Return)
WHERE ItemID = @ItemID
如果@Return=0,则幂(-1,0)=1,则减少库存
如果@Return=1,则功率(-1,1)=-1,则增加库存。如果@quantity=0。。设置数量=数量-@Quantity?噢,谢谢你,我不知道在我一定做了什么之前不是这样的正如@Stoleg所说,如果数量=0,您的第一个条件将无效。如果数量=0或其他,你做的完全相同!如果@quantity=0。。设置数量=数量-@Quantity?噢,谢谢你,我不知道在我一定做了什么之前不是这样的正如@Stoleg所说,如果数量=0,您的第一个条件将无效。如果数量=0或其他,你做的完全相同!如果@quantity=0。。设置数量=数量-@Quantity?噢,谢谢你,我不知道在我一定做了什么之前不是这样的正如@Stoleg所说,如果数量=0,您的第一个条件将无效。如果数量=0或其他,你做的完全相同!如果@quantity=0。。设置数量=数量-@Quantity?噢,谢谢你,我不知道在我一定做了什么之前不是这样的正如@Stoleg所说,如果数量=0,您的第一个条件将无效。如果数量=0或其他,你做的完全相同!更新了我的代码,但是当退货时,库存水平只会下降,但不会上升。@return的值会下降吗?谢谢你的实际工作,它没有更新的原因是因为我不得不在前端更改一些内容。更新了我的代码,但是,当退货时,库存水平只会下降,但不会上升。是否会因为@return的任何值而下降?感谢您的实际工作,它没有更新的原因是因为我必须更改前端的一些内容。更新了我的代码,但是,当退货时,库存水平只会下降,但不会上升。是否会因为@return的任何值而下降?感谢您的实际工作,它没有更新的原因是因为我必须更改前端的一些内容。更新了我的代码,然而,当退货时,库存水平只会下降,但不会上升。是否会因为@return的任何值而下降?谢谢你的实际工作,它没有更新的原因是因为我不得不在前端更改一些东西。