当前位置: 代码迷 >> SQL >> sql 统计年年每月的信息
  详细解决方案

sql 统计年年每月的信息

热度:10   发布时间:2016-05-05 12:08:54.0
sql 统计每年每月的信息
最近在做项目时遇到要将年月信息按如下格式输出:
year month amount
1991 1     1.1
1991 2     1.2
1991 3     1.3
1991 4     1.4
1992 1     2.1
1992 2     2.2
1992 3     2.3
1992 4     2.4
查成这样一个结果
year m1  m2  m3  m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4
(此例子也适用于工资条)
笔者最初是将表中数据按表结构全部查出,然后在方法中根据想要的结果进行装载,虽然java在内存中运行飞快,但是肯定不如直接在DB中查询出结果小效率高,而且有做重复工作的嫌疑,后来无意中发现了,sql可直接运行处结果,使之效率提升不少,sql代码:
select sales.year , (select t.amount from sales t where t.month='1' and t.year= sales.year) 'm1', (select t.amount from sales t where t.month='2' and t.year= sales.year) 'm2', (select t.amount from sales t where t.month='3' and t.year= sales.year) 'm3', (select t.amount from sales t where t.month='4' and t.year= sales.year) 'm4' from sales group by sales.year ;


此小技巧与大家分享,如果错误,请各位大神指教~!
  相关解决方案