题目: 同一年同一个月份只有一条,但是一年有多个月 分析: a1对应的smonth里面的 1。年、月为列。

题目: 同一年同一个月份只有一条,但是一年有多个月 分析: a1对应的smonth里面的 1。年、月为列。

题目:

同一年同一个月份只有一条,但是一年有多个月

分析:

a1对应的smonth里面的 1。年、月为列。

正解:

1、用case when

select ayear,

sum(case when smonth=1 then samont else 0) as a1,

sum(case when smonth=2 then samont else 0) as a2,

sum(case when smonth=3 then samont else 0) as a3,

sum(case when smonth=4 then samont else 0) as a4

from sale

group by syear;

2、用if

select syear as syear,

sum(IF(smonth = '1', samount, 0)) as a1,

sum(IF(smonth = '2', samount, 0)) as a2,

sum(IF(smonth = '3', samount, 0)) as a3,

sum(IF(smonth = '4', samount, 0)) as a4 

from sale 

group by syear