SQL2000循环求和

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:32:27
表结构如下
msisdn day1 day2 day3 day4.....day31 payload
13204301234 72123 58342 3864 0 2345 5000000
13104318371 46281 3972 923 6234 27198 400000

在这个表右边加一个字段。实现得知每行在哪天能完成的payload字段里的量,就是将日期字段下的量相加,哪天能达到了payload的值。如果达到了,就返回该天的字段,没达到,就返回未达到。 数据环境是SQL2000,求一个可用的程序,
第一行中payload值为5000000,需要用day1的值比较payload看是否大于5000000,不大于就用day1+day2的值相加再比较,直到大于为止,如果31天的值相加都不大于就返回未达到PAYLOAD值,如果在day14的时候累加值大于了payload就返回day14达到该值。不明确吗?

select msisdn,day1,day2,day3,day4.....day31,payload,
case when day1>=payload then 'day1'
when day1+day2>=payload then 'day2'
when day1+day2+day3>=payload then 'day3'
when day1+day2+day3+day4>=payload then 'day4'
.............
when day1+day2+day3+day4+...+day31>=payload then 'day31'
else '未达到'
end as 达标
from 表

select case when day1>paload then day1 else '未达到' end .....
case when day31>paload then day31 else '未达到' end
from biao

数据库实现可用触发器控制。

楼主的需求表达不明确