日期:2014-05-17  浏览次数:20461 次

这个存储过程如何实现?
平时写在程序的方便。是使用for每一行记录,进行每一行的统计。


A B C
1 100 0.5
2 100 0.3

我要在存储过程中使用for

其他语句是这样的。

float sum;
for( i = 0; i < 记录数; i++)
{
     if( $row[i].C == 0.3 )
     {
       sum = 100 * 0.3 * 30;
     }
     if( $row[i].C > 0.3 )
     {
       sum = 100 * 0.3 * 59;
     }
}

------解决方案--------------------
select *,
      case when c=0.3 then b*c*30
           when c>0.3 then b*c*59
      else
       --<0.3 do 
      end
from tb
------解决方案--------------------
for写法在TSQL里对应的是游标.
------解决方案--------------------
引用:
Quote: 引用:

一行一行处理,效率相对比较低。


条件太多,无法不一行一行来做。计算拥的,有10个级别,要不同的级别不同计算方式


条件多没关系,在sql语句里,通过case when的条件判断,就可以实现的。