请问SQL行列转换这种效果怎么写?
我知道是要进行行列转换,但是写了半天,效果不对。
这个是效果图:
下面是数据库中的值:
下面是我的SQL:
CREATE OR REPLACE PROCEDURE T_TEST
IS
V_SQL NVARCHAR2(2000);
CURSOR CURSOR_1 IS
SELECT team_name
FROM teamtab T;
BEGIN
V_SQL := 'SELECT run_date ';
FOR V_TB IN CURSOR_1
LOOP
V_SQL := V_SQL
[解决办法]
','
[解决办法]
'MAX(DECODE(A.team_name,'''
[解决办法]
V_TB.team_name
[解决办法]
''',DECODE(TIME_ID,1,''一'',2,''二'',3,''三'',4,''四''),NULL)) AS "'
[解决办法]
V_TB.team_name
[解决办法]
'"';
END LOOP;
V_SQL := V_SQL
[解决办法]
' FROM teamtab a,runtab b' ;
V_SQL := V_SQL
[解决办法]
' WHERE A.TEAM_ID = B.TEAM_ID';
V_SQL := V_SQL
[解决办法]
' GROUP BY RUN_DATE ORDER BY RUN_DATE';
DBMS_OUTPUT.PUT_LINE(V_SQL);
--EXECUTE IMMEDIATE V_SQL;
END;
RUN_DATE 甲 乙 丙 丁 戊 己
--------------------------------------
12013/9/26一一二
22013/9/27四二三一
32013/9/28一二三四
42013/9/29一二四三
52013/9/30一二三四