2016-09-27 152 views
-2

如何使用参数将orderdetails表上的订单增加10%?SQL Server参数和百分比增加

我不喜欢的东西:添加一个名为IncPercent参数订单的价值如果IncPercent值低于10%,或者如果IncPercent为10%以上,加上10%的订单的所有订单的价值在利用IF/ELSE的 OrderDetails表。* /是我到目前为止

代码我有点坚持

Create procedure [spAddPercentage] 
    @incPercent decimal(5,4) 
as 
    update OrderDetails 
    set @incPercent = @incpercent * 1.10 
    ......... 

我无法弄清楚如何使用if else语句在此代码。任何人都可以给我一个更好的理解,或给我一个例子,我应该为if/else添加什么?

+0

你是如何确定更新什么样的顺序,如果'IncPercent'低于10%? – Siyual

+0

可以在存储过程运行之前和之后添加OrderDetails表中的一些示例数据吗? – openshac

+1

谨慎的提示:小数点(5,4)数据类型总共有** 5个数字**,并且它们在小数点逗号**之后有** 4,所以它可以存储从0.0000到9.9999的值 - 但仅此而已。你是否意识到这一点,这对你来说可以吗? (你不能在这样的变量/参数中存储“10”或“20”) –

回答

1

在这里使用IF/ELSE似乎是一个更复杂的方法来实现这一点。案例表达会更简单。

update OrderDetails 
set Value = Value * (1 + case when @incPercent < .1 then .1 else @incPercent end) 
+0

即时通讯只使用if/else –

+0

为什么IF/ELSE?这是在这里使用的错误的东西。您必须创建两条语句而不是一条语句,并且完全是任意的要求。 –

+0

因为任务让我去。我的培训师甚至不会解释它。跟他在一起就好像在砖墙上说话一样。 –