当前位置:数据库 > Oracle >>

创建交叉报表(oracle)

答案:
创建交叉报表

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;

 

上一个:Install Oracle10g On RedhatEL AS3 Update2 Step-by-Step
下一个:Oracle数据库表与视图

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,