当前位置: 代码迷 >> DB2 >> 遇到group by统计有关问题
  详细解决方案

遇到group by统计有关问题

热度:1754   发布时间:2013-02-26 00:00:00.0
遇到group by统计问题
简化表数据为:
  日期 科目 借 贷 余额 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 分可用分!
------解决方案--------------------------------------------------------
先收藏一下
------解决方案--------------------------------------------------------
额 顶一下
------解决方案--------------------------------------------------------
  相关解决方案