经典SQL(二)

2015-11-21 01:52:33 · 作者: · 浏览: 14
nt (YEAR, MONTH, AMOUNT) values ('1991', '2', 1.20); insert into amount (YEAR, MONTH, AMOUNT) values ('1991', '3', 1.30); insert into amount (YEAR, MONTH, AMOUNT) values ('1991', '4', 1.40); insert into amount (YEAR, MONTH, AMOUNT) values ('1992', '1', 2.10); insert into amount (YEAR, MONTH, AMOUNT) values ('1992', '2', 2.20); insert into amount (YEAR, MONTH, AMOUNT) values ('1992', '3', 2.30); insert into amount (YEAR, MONTH, AMOUNT) values ('1992', '4', 2.40);
 
 
思路:group by year统计年,再条件判断每个月,统计所在月,所在月的合计值显示出来
select year,
       (select sum(amount)
          from amount m
         where month = 1
           and m.year = amount.year) as m1,
       (select sum(amount)
          from amount m
         where month = 2
           and m.year = amount.year) as m2,
       (select sum(amount)
          from amount m
         where month = 3
           and m.year = amount.year) as m3,
       (select sum(amount)
          from amount m
         where month = 4
           and m.year = amount.year) as m4
  from amount
 group by year;
SQL>
select year, 2 (select sum(amount) 3 from amount m 4 where month = 1 5 and m.year = amount.year) as m1, 6 (select sum(amount) 7 from amount m 8 where month = 2 9 and m.year = amount.year) as m2, 10 (select sum(amount) 11 from amount m 12 where month = 3 13 and m.year = amount.year) as m3, 14 (select sum(amount) 15 from amount m 16 where month = 4 17 and m.year = amount.year) as m4 18 from amount 19 group by year; YEAR M1 M2 M3 M4 ---- ---------- ---------- ---------- ---------- 1991 1.1 1.2 1.3 1.4 1992 2.1 2.2 2.3 2.4