如果条件,解决SQL的最佳方法

时间:2015-08-25 03:55:21

标签: sql-server stored-procedures

我有问题 这是我的表项目

Item |Begin | in01 | in02 | ..| in12 | out01 | out02 |..|out12 | Balance
A    | 100  | 10   | 20   | ..| 10   |   5   | 10    |..| 5    | 110

项目A在第一个月开始数量为100,在第12个月时为余额数量= 110 平衡每月更新

我需要调用一个程序来获取每月报告的数据

sample for report for month 01
  Beginning| In |   Out | balance           
      100  | 10 |   5   | 105       

 sample for report for month 02
  Beginning| In |   Out | balance           
     105   | 20 |   10  |  115      
 sample for report for month 12
  Beginning    | In |   Out | balance           
balance month 11   | xx |   xx  |  11 + in - out

所以起始值=上个月的余额 任何使这个存储过程简单的方法?没有使用很多'IF'

使用案例更好吗?

需要一些想法..谢谢

2 个答案:

答案 0 :(得分:1)

你可以使用Case语句来避免if语句

select
case when beginning value = balance then 1st Option else 2nd Option as Test
from tblTest

答案 1 :(得分:1)

如果您有多个条件,最好使用'CASE',IF ELSE条件仅适用于较少的条件。喜欢2到3个条件。如果条件语句超过5或10,只需使用CASE WHEN使代码更易读和易懂。

问候。