表的内容:
项目 机构 值
-----------------------
AAA 北京 10
AAA 天津 20
AAA 上海 30
BBB 北京 34
BBB 天津 56
BBB 上海 89
CCC 北京 23
CCC 天津 65
CCC 上海 90
要求实现的样式:项目 北京 天津 上海
---------------------------------
AAA 10 20 30
BBB 34 56 89
CCC 23 65 90
项目 机构 值
-----------------------
AAA 北京 10
AAA 天津 20
AAA 上海 30
BBB 北京 34
BBB 天津 56
BBB 上海 89
CCC 北京 23
CCC 天津 65
CCC 上海 90
要求实现的样式:项目 北京 天津 上海
---------------------------------
AAA 10 20 30
BBB 34 56 89
CCC 23 65 90
解决方案 »
- oracle utl_file生成xml文件后修改的问题
- 触发器问题
- IMP-00008是什么错误?从别的机器上导出的数据在另外的机器上会出现上述错误。
- 数据库A访问数据库B
- 请问哪有<<oracle9i dba基础Ⅰ引论学习指南>>电子书下载
- 有谁知道在sql plus中怎么查看视图的源代码吗?
- sql横排问题,在线等待
- 请教 “ORA-00020:maximum number of process(50) exceeded” ??
- 各位高人帮忙---关于oracle数据库导到db2数据库解决方法(表结构和数据都导过去)
- 帮别人问的,有oracle application方面的高手吗,有偿工作(真的Money)!
- oracle 中怎样查看被锁的job?
- 为什么下面的两句话没有一句可以选出数据来?
CREATE OR REPLACE PROCEDURE DOER.DP01
IS
VID VARCHAR2(10);
FVID VARCHAR(10);
VAD VARCHAR2(10);
NCT NUMBER(6);
ILOOP NUMBER;
TYPE MYRCD IS RECORD(CID VARCHAR2(10),TJ NUMBER(6),SH NUMBER(6),BJ NUMBER(6));
TYPE MYTYPE IS TABLE OF MYRCD INDEX BY BINARY_INTEGER;
MYTAB MYTYPE;
CURSOR CSR IS SELECT A,D,B FROM DT01 ORDER BY A,D;
BEGIN
ILOOP := 0;
FVID := NULL;
OPEN CSR;
LOOP
FETCH CSR INTO VID,VAD,NCT;
EXIT WHEN CSR%NOTFOUND;
IF FVID = VID THEN
NULL;
ELSE
ILOOP := ILOOP + 1;
MYTAB(ILOOP).CID := VID;
END IF;
FVID := VID;
CASE
WHEN VAD = 'TJ' THEN MYTAB(ILOOP).TJ := NCT;
WHEN VAD = 'SH' THEN MYTAB(ILOOP).SH := NCT;
WHEN VAD = 'BJ' THEN MYTAB(ILOOP).BJ := NCT;
END CASE;
END LOOP;
ILOOP := 0;
DBMS_OUTPUT.PUT_LINE('CID TJ SH BJ');
LOOP
ILOOP := ILOOP + 1;
EXIT WHEN ILOOP > MYTAB.COUNT;
DBMS_OUTPUT.PUT_LINE(MYTAB(ILOOP).CID||' '||MYTAB(ILOOP).TJ||' '||MYTAB(ILOOP).SH||' '||MYTAB(ILOOP).BJ);
END LOOP;
CLOSE CSR;
END;
/
sum(decode( 机构,'北京',值,0)) "北京",
sum(decode( 机构,'天津',值,0)) "天津",
sum(decode( 机构,'上海',值,0)) "上海"
from tab
group by 项目
sum(decode( 机构,'北京',值,0)) "北京",
sum(decode( 机构,'天津',值,0)) "天津",
sum(decode( 机构,'上海',值,0)) "上海"
from tab
group by 项目