Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL中的嵌套If条件_Sql_Tsql_Sql Server 2012 - Fatal编程技术网

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的任何值而下降?谢谢你的实际工作,它没有更新的原因是因为我不得不在前端更改一些东西。