日期:2014-05-17 浏览次数:20776 次
唯一编号 产品 下单日期 付费日期 金额 当时是否付费
1 a 1 1 10 是
2 a 1 10 否
9 b 2 3 5 否
0 c 3 4 7 否
5 c 3 5 7 否
11 d 4 6 否
7 d 5 5 6 是
注:数据看起来比较乱,烦请各位转贴到excel 这样比较整齐好看
唯一编号 产品 下单日期 付费日期 金额 当时是否付费 总未付费金额 说明
1 a 1 1 10 是 10 编号2未付费
2 a 1 10 否 10 编号2未付费
9 b 2 3 5 否 15 编号2、9未付费
0 c 3 4 7 否 24 编号2、0、5未付费
5 c 3 5 7 否 24 编号2、0、5未付费
11 d 4 6 否 23 编号2、5、11未付费
7 d 5 5 6 是 16 编号2、11未付费
注: 说明一列不是查询结果,只是我对查询结果的说明。可不理会。
with table1 as
(
select 1 bh,'a' cp,1 xd,1 ff,10 je,'是' yn from dual union all
select 2 bh,'a' cp,1 xd,null ff,10 je,'否' yn from dual union all
select 9 bh,'b' cp,2 xd,3 ff,5 je,'否' yn from dual union all
select 0 bh,'c' cp,3 xd,4 ff,7 je,'否' yn from dual union all
select 5 bh,'c' cp,3 xd,5 ff,7 je,'否' yn from dual union all
select 11 bh,'d' cp,4 xd,null ff,6 je,'否' yn from dual union all
select 7 bh,'d' cp,5 xd,5 ff,6 je,'是' yn from dual
)
select bh "唯一编号",cp "产品",xd "下单日期",
ff "付费日期",je "金额",yn "当时是否付费",
(select sum(je)
from table1 t1
where t1.xd <= t2.xd and (t1.ff > t2.xd or t1.ff is null) and t1.yn = '否'
) "总未付费金额"
from table1 t2
唯一编号 产品 下单日期 付费日期 金额 当时是否付费 总未付费金额
-----------------------------------------------------------------------------
1 1 a 1 1 10 是 10
2 2 a 1 10 否 10
3 9 b 2 3 5 否 15
4 0 c 3 4 7 否 24
5 5 c 3 5 7 否 24
6 11 d 4 6 否 23
7 7 d 5 5 6 是 16