select com,sum(decode(to_char(date,'mm'),'01',money,0)) money1,sum(decode(to_char(date,'mm'),'02',money,0) money2,sum(decode(to_char(date,'mm'),'03',money,0) money3 .... from table where data >= ? and data <= ? group by com;
调试欢乐多
group by com;
from tablename where to_char(date,'YYYY') = '2002'
group by com,to_char(date,'YYYY-MM');
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),1,money,0)) money1,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),2,money,0)) money2,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),3,money,0)) money3,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),4,money,0)) money4,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),5,money,0)) money5,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),6,money,0)) money6,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),7,money,0)) money7,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),8,money,0)) money8,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),9,money,0)) money9,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),10,money,0)) money10,
sum(decode(trunc(MONTHS_BETWEEN(date,to_date(inputmonth,'yyyy/mm'))),11,money,0)) money11
from table where date >= inputmonth
group by com;