简化表数据为:
日期 科目 借 贷 余额 row_id( 主键)
2009-6-1 100201 1 2 3 1
2009-6-1 100201 2 3 4 2
2009-6-1 100202 3 4 5 3
2009-6-1 100202 8 8 9 4
2009-6-1 100203 4 4 6 5
2009-6-2 100201 1 2 3 6
2009-6-2 100201 2 3 12 7
2009-6-2 100202 3 4 1 8
2009-6-3 100203 5 2 8 9
2009-6-4 100201 1 3 4 10
...................................................................(数据多条)
说明:科目分1级如(1002)和2级,2级科目为100201,100202,100203
希望查询:用户页面输入一级科目如:1002统计出其下2级科目每日合计
格式如下:日期 借 贷 余额
2009-6-1查询结果:
日期 借 贷 余额
2009-6-1 1+2+3+8+4 2+3+4+8+4 比较100201取最大row_id对应余额是4 ,比较100202取最大row_id对应余额是9 ,比较100203取最大row_id对应余额是6 余额为:4+9+6 不是3+4+5+9+6
2009-6-2 1+2+3 2+3+4 比较100201取最大row_id对应余额是4 ,比较100201取最大row_id对应余额是12 ,比较100203取最大row_id对应余额是1,前期同2级100203科目最大row_id对应余额6 余额为:12+1+6 不是12+1
2009-6-3 5 2 前期同2级100201科目最大row_id对应余额12,前期同2级100202科目最大row_id对应余额1 余额为:12+1+8 不是8也不是12+1+6
.....................................................................................
规则:用户在前台输入一级科目如1002和不定范围的时间段如2009-5-22到2009-6-4,请给出每日统计,案例和格式如上
1级下2级科目数目不定,但是前4位编码一定是1级科目编码如:1002,2级科目之间编码唯一,查询可用like '1002%'
2借,贷统计
余额统计:是统计group by查询开始日期到每天的时间段,而不是每天 如:2009-6-3余额为:12+1+8 不是8也不是12+1+6
如果这段时间没有科目100204发生业务,暂且不管.
个人遇到困难,请高手最好能给出SQL,关键是余额合计,谢先.
------解决方案--------------------------------------------------------
关注下
------解决方案--------------------------------------------------------
关注
------解决方案--------------------------------------------------------
create table zzr_test(
row1 varchar2(20),
row2 varchar2(20),
row3 number,
row4 number,
row5 number,
row6 number)
select a.row1,a.row2,sum(a.row3),sum(a.row4),max(b.row5)--b.row1,b.row2,sum(b.row5)
from zzr_test a, zzr_test b
where a.row1='2009-6-1' and a.row2 like '1002%'
and (b.row2,b.row6) in(
select row2,max(row6) from zzr_test where row1='2009-6-1' and row2 like '1002%'
group by row2)
and a.row2=b.row2 and a.row1=b.row1
group by a.row1,a.row2
------解决方案--------------------------------------------------------
先看看
------解决方案--------------------------------------------------------
这个有点意思,可以研究一下
------解决方案--------------------------------------------------------
顶一下
------解决方案--------------------------------------------------------
ding
------解决方案--------------------------------------------------------
顶了
------解决方案--------------------------------------------------------
高手都去觅它贴了, 因为这个贴完全读懂都很占时间呀, 看来带星高手为赚分也很现实哟
^_^, 有些过激, 只是想替LZ把高手激出来
------解决方案--------------------------------------------------------
回帖是一种美德!每天回帖即可获得 10 分可用分!
------解决方案--------------------------------------------------------
先收藏一下
------解决方案--------------------------------------------------------
额 顶一下
------解决方案--------------------------------------------------------