首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

请教SQL行列转换这种效果如何写

2013-10-09 
请问SQL行列转换这种效果怎么写?我知道是要进行行列转换,但是写了半天,效果不对。这个是效果图:下面是数据

请问SQL行列转换这种效果怎么写?
我知道是要进行行列转换,但是写了半天,效果不对。
这个是效果图:
请教SQL行列转换这种效果如何写
下面是数据库中的值:
请教SQL行列转换这种效果如何写
下面是我的SQL:


同一天的甲乙丙丁戊不在同一行,还有后面的begin_time不知道如何处理,麻烦大家给点提示或者帮忙写一下,谢谢。
[解决办法]
oracle没有主键 还是自己手动添加 
插入时间的时候 也是自己转换的  小麻烦了点 

下面是通过动态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一二三四

热点排行