|
创建交叉报表
create table t1( goodid number(10) not null, saledate date not null, salesum number(10) );
要求生成本年度每个月的产品销售状况表
m1 m2 m3 ... m12 g1 g2 . . . gn
下面是生成报表的sql
SELECT goodid, SUM(decode(to_char(saledate,''''mm''''),''''01'''',salesum)) "01", SUM(decode(to_char(saledate,''''mm''''),''''02'''',salesum)) "02", SUM(decode(to_char(saledate,''''mm''''),''''03'''',salesum)) "03", SUM(decode(to_char(saledate,''''mm''''),''''04'''',salesum)) "04", SUM(decode(to_char(saledate,''''mm''''),''''05'''',salesum)) "05", SUM(decode(to_char(saledate,''''mm''''),''''06'''',salesum)) "06", SUM(decode(to_char(saledate,''''mm''''),''''07'''',salesum)) "07", SUM(decode(to_char(saledate,''''mm''''),''''08'''',salesum)) "08", SUM(decode(to_char(saledate,''''mm''''),''''09'''',salesum)) "09", SUM(decode(to_char(saledate,''''mm''''),''''10'''',salesum)) "10", SUM(decode(to_char(saledate,''''mm''''),''''11'''',salesum)) "11", SUM(decode(to_char(saledate,''''mm''''),''''12'''',salesum)) "12" from t1 where to_char(saledate,''''yyyy'''') = ''''2004'''' group by goodid order by goodid;
|