求一SQL语句(100)

  • 主题发起人 主题发起人 漂流的雲
  • 开始时间 开始时间

漂流的雲

Unregistered / Unconfirmed
GUEST, unregistred user!
日期 名称 BMKC PO Avaid20101217 A 100 500 100020101224 A 800 30 58020101231 A 400 0 6020110107 A 500 12 37020101212 B 300 500 100020101221 B 400 60 58020101231 B 400 100 80020110107 B 500 12 370查询得到下面内容日期 名称 BMKC PO Avaid 结果20101217 A 100 500 1000 020101224 A 800 30 580 35020101231 A 400 0 60 -12020110107 A 500 12 370 79820101212 B 300 500 1000 020101221 B 400 60 580 -8020101231 B 400 100 800 52020110107 B 500 12 370 58注结果=BMKC-PO-前日期Avaid+当日Avaid 800-30-1000+580=350第一个日期的起始名称不用计算;
 
没人帮忙啊。。。。。
 
直接用语句可能比较麻烦,建议你在存储过程里用游标进行计算处理。
 
Select 日期, 名称, BMKC, PO, Avaid, Avaid_Prior, (case when Avaid_Prior is null then 0 else BMKC-PO-Avaid_Prior+Avaid end) as 结果from (SELECT 日期, 名称, BMKC, PO, Avaid, (Select Avaid from A as Y, (Select Max(日期) as RQ From A AS X Where X.名称=A.名称 And X.日期<A.日期) AS XX Where Y.名称=A.名称 AND Y.日期=XX.RQ) as Avaid_Prior From A) as Z
 
楼上的正解,厉害
 
接受答案了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
691
import
I
I
回复
0
查看
891
import
I
后退
顶部