如下数据所示
Year WEEK TYPE PRICE
--------------------------
2008 01 A 1
2008 02 A 2
2008 03 A 3
2008 04 A 4
--------------------------
2008 02 B 2
2008 04 B 4
--------------------------
2008 01 C 1
2008 02 C 2将以上的数据转换为一下形式: 2008 A 01 1 02 2 03 3 04 4
-----------------------------------------------------------------
2008 B 02 2 04 4
-----------------------------------------------------------------
2008 C 01 1 02 2 请问该如何实现
Year WEEK TYPE PRICE
--------------------------
2008 01 A 1
2008 02 A 2
2008 03 A 3
2008 04 A 4
--------------------------
2008 02 B 2
2008 04 B 4
--------------------------
2008 01 C 1
2008 02 C 2将以上的数据转换为一下形式: 2008 A 01 1 02 2 03 3 04 4
-----------------------------------------------------------------
2008 B 02 2 04 4
-----------------------------------------------------------------
2008 C 01 1 02 2 请问该如何实现
解决方案 »
- Oracle安装时Oracle_Base放到存储上还是本地磁盘呢?
- 求教数据库设计问题!!!急!急!急!
- sql优化
- ORDER BY DESC 特别消耗资源,如何解决
- 100分急求解决方案
- 为什么连接不了数据库?数据库是oracle92
- 紧急求助关于oracle安装的简单问题
- 用sqlplus怎么进不了??救命!
- oracle 数据库中行数的问题。
- 关于倒转表的查询,如何写这样的sql语句?请高手帮忙!
- 微软 SQL Server北京研发中心招聘一名 SQL IT System Engineer
- oracle 7.3 连接时 提示ora-00604 ora-00376 ora-01110(问题紧急,高手请联系,酬谢!)
decode(week1_price,0,null,'01') week1, decode(week1_price,0,null,week1_price) week1_price,
decode(week1_price,0,null,'02') week2, decode(week1_price,0,null,week1_price) week2_price,
decode(week1_price,0,null,'03') week3, decode(week1_price,0,null,week1_price) week3_price,
decode(week1_price,0,null,'04') week4, decode(week1_price,0,null,week1_price) week4_price
from (
select year, type,
sum(case when week='01' then price else 0 end) week1_price,
sum(case when week='02' then price else 0 end) week2_price,
sum(case when week='03' then price else 0 end) week3_price,
sum(case when week='04' then price else 0 end) week4_price
from t
group by year, type
);
year,
type,
decode(week, '01','01') week_1,
max(decode(week, '01',price)) price_1,
decode(week, '02','02') week_2,
max(decode(week, '02',price)) price_2,
decode(week, '03','03') week_3,
max(decode(week, '03',price)) price_3,
decode(week, '04','04') week_4,
max(decode(week, '04',price)) price_4
from tablename
group by year, type
);