DB2行轉列(多維度)


多維度下進行行列轉換,下面的行列轉換時根據客戶,所屬銀行機構進行的行列轉換。

-----------------建表
CREATE TABLE CUST_BANK_INFO
(
 CUST_ID VARCHAR(10),
 CUST_NAME VARCHAR(100),
 BANK_NO VARCHAR(100),
 BANK VARCHAR(100),
 MONEY_TYPE_NO VARCHAR(100),
 MONEY_TYPE VARCHAR(100),
 MONEY INT
);

INSERT INTO CUST_BANK_INFO VALUES('C001','允賢','B01','中國銀行','MT01','理財',10000);
INSERT INTO CUST_BANK_INFO VALUES('C002','李四','B01','中國銀行','MT02','貸款',20390);
INSERT INTO CUST_BANK_INFO VALUES('C003','王五','B01','中國銀行','MT03','存款',29301);
INSERT INTO CUST_BANK_INFO VALUES('C004','陳六','B01','中國銀行','MT04','教育儲蓄',10000);
INSERT INTO CUST_BANK_INFO VALUES('C001','允賢','B02','中國銀行','MT01','理財',20000);
INSERT INTO CUST_BANK_INFO VALUES('C005','JACK','B02','工商銀行','MT05','理財',10001);
INSERT INTO CUST_BANK_INFO VALUES('C006','王三','B02','工商銀行','MT06','貸款',10002);
INSERT INTO CUST_BANK_INFO VALUES('C007','劉六','B02','工商銀行','MT07','存款',10003);
INSERT INTO CUST_BANK_INFO VALUES('C008','鄭七','B02','工商銀行','MT08','教育儲蓄',10004);

SELECT * FROM CUST_BANK_INFO
 
         
查詢結果如下:

--DELETE FROM CUST_BANK_INFO
DROP TABLE Mapping;
CREATE TABLE Mapping
(
 CN_NAME VARCHAR(100),
 Code_L  VARCHAR(10),
 Code_N  VARCHAR(10)
)
INSERT INTO Mapping values('理財','MT01','BANK_01');
INSERT INTO Mapping values('理財','MT05','BANK_01');
INSERT INTO Mapping values('貸款','MT02','BANK_02');
INSERT INTO Mapping values('貸款','MT06','BANK_02');
INSERT INTO Mapping values('存款','MT03','BANK_03');
INSERT INTO Mapping values('存款','MT07','BANK_03');
INSERT INTO Mapping values('教育儲蓄','MT04','BANK_04');
INSERT INTO Mapping values('教育儲蓄','MT08','BANK_04');


    
SELECT CUST_ID,
       CUST_NAME,
       BANK_NO,
       BANK,
max(CASE WHEN B.Code_N='BANK_01' THEN MONEY ELSE '0' END) AS 理財,
max(CASE WHEN B.Code_N='BANK_02' THEN MONEY ELSE '0' END) AS 貸款,
max(CASE WHEN B.Code_N='BANK_03' THEN MONEY ELSE '0' END) AS 存款,
max(CASE WHEN B.Code_N='BANK_04' THEN MONEY ELSE '0' END) AS 教育儲蓄
FROM CUST_BANK_INFO A
LEFT JOIN MAPPING B ON A.MONEY_TYPE_NO=B.Code_L
group by CUST_ID,CUST_NAME,BANK,BANK_NO

 

查詢結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM