日期:2014-05-18  浏览次数:20823 次

用T-SQL如何写多分支语句
用T-SQL如何写多分支语句

这是一个积分返还金额的问题,如果我的积分范围分这几段
5000~30000 (乘以2%)
30001~50000 (乘以3%)
50001~100000 (乘以4%)
100001以上的 (乘以5%)
比如我现在的积分是67500那么的返还金额应该是
超出50000的部分乘以4%就是17500*4%=700
超出30000的部分乘以3%就是20000*3%=600
剩下的30000*2%=600
那么应该返还金额就是700+600+600=1900

------解决方案--------------------
SQL code
DECLARE @i INT

SELECT  CASE WHEN @i > 50000
             THEN ( @i - 50000 ) * 0.04 + 20000 * 0.03 + 30000 * 0.02
             ELSE CASE WHEN @i BETWEEN 30000 AND 50000
                       THEN ( @i - 30000 ) * 0.03 + 30000 * 0.02
                       ELSE @i * 0.02
                  END
        END