如下数据所示
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 请问该如何实现
解决方案 »
- 求一分组SQL语句
- ORACLE 溢出问题
- 自定义数据类型的修改与删除
- 将oracle中某张表的数据同步到sql server的表中 分布式处理 触发器
- 关于表空间的大小的问题请帮忙
- 存储过程和自定义函数的困惑
- 提取数据库连接串
- 如何将sql server 中的数据库移植到oracle,急!
- 安装数据库问题
- Linux Redhat6.4安装oracle 11g报 INS-20802
- 微软 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
);