利用sum来实现行列转换(一)

2014-11-24 12:23:10 · 作者: · 浏览: 4
利用sum来实现行列转换
原始表如下: www.2cto.com
预期想要将表中的每一个IDX_CODE分别在查询结果中各显示一列,结果表如下:
建表语句如下:
create table test
(
IDX_DATA_ID NUMBER(12) not null,
org_no NUMBER(2),
org_name VARCHAR2(6),
idx_code VARCHAR2(12),
stat_cycle NUMBER(6),
data_value NUMBER(12),
CHAIN_VALUE NUMBER(6,2)
)
插入数据: www.2cto.com
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025889, 1, '北京', 'ZH001360', 201210, 100000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025890, 1, '北京', 'ZH001360', 201211, 110000, 1.10);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025891, 1, '北京', 'ZH001360', 201212, 90000, 0.82);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025892, 1, '北京', 'ZH001359', 201210, 200000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025893, 1, '北京', 'ZH001359', 201211, 210000, 1.05);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025894, 1, '北京', 'ZH001359', 201212, 190000, 0.90);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025895, 2, '上海', 'ZH001360', 201210, 100000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025896, 2, '上海', 'ZH001360', 201211, 110000, 1.10);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025897, 2, '上海', 'ZH001360', 201212, 90000, 0.82);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025898, 2, '上海', 'ZH001359', 201210, 200000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025899, 2, '上海', 'ZH001359', 201211, 210000, 1.05);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025900, 2, '上海', 'ZH001359', 201212, 190000, 0.90);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025901, 3, '天津', 'ZH001360', 201210, 100000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025902, 3, '天津', 'ZH001360', 201211, 110000, 1.10);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025903, 3, '天津', 'ZH001360', 201212, 90000, 0.82);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025904, 3, '天津', 'ZH001359', 201210, 200000, 0.00);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_CODE, STAT_CYCLE, DATA_VALUE, CHAIN_VALUE)
values (1300025905, 3, '天津', 'ZH001359', 201211, 210000, 1.05);
insert into TEST (IDX_DATA_ID, ORG_NO, ORG_NAME, IDX_C