日期:2014-05-16  浏览次数:20904 次

一个Oracle报表问题
在工作中与到一个报表业务需求,想了半天搞不定,特来请教大神!

情况是这样的,

有一个消费类型字典表A
id     主键
name   类型名称

还有一个消费记录表B
id     主键
year   年份(如:2012,2013)
tid    消费类型ID
money  消费金额

想要得到如下报表

年份\消费类型    
               类型1    类型2    类型3    ...    小计
         2012
         2013
         ...
         小计

按消费类型和年份统计消费金额的报表。

分析了一下似乎可以用sql把它搞出来,但自己弄了半天没什么没什么头绪, 请大神指点!

如果用sql不行,只能下后台用java悲催的拼出来了 

------解决方案--------------------
这几个你选一个应该可以搞定,不过我不熟悉
GROUP BY 与ROLLUP、CUBE 和GROUPING SETS
------解决方案--------------------
引用:
在工作中与到一个报表业务需求,想了半天搞不定,特来请教大神!

情况是这样的,

有一个消费类型字典表A
id     主键
name   类型名称

还有一个消费记录表B
id     主键
year   年份(如:2012,2013)
tid    消费类型ID
money  消费金额

想要得到如下报表

年份\消费类型    
               类型1    类型2    类型3    ...    小计
         2012
         2013
         ...
         小计

按消费类型和年份统计消费金额的报表。

分析了一下似乎可以用sql把它搞出来,但自己弄了半天没什么没什么头绪, 请大神指点!

如果用sql不行,只能下后台用java悲催的拼出来了 

如果你的类型数量不定,暂时还没人能用一个SQL解决。因为论坛里很多人都提过这个问题了,如果你的类型数量固定可以用CASE WHEN 或者DECODE 来固定列名完成统计。
------解决方案--------------------
引用:
类型是不定的,是的个难道! 哪里有类型类似问题的解决方案,求网址,嘿嘿

http://bbs.csdn.net/topics/390652739
------解决方案--------------------
动态行转列 老问题了 几十个类型 核心就一个 查询所有不同类型拼接起来

建议还是用存储过程做吧  如果服务器无鸭梨 也可以在程序里面拼接