我公司一报表倒出的格式如下: 
工人    日期    时间 金额 
小张    2009-08-01  08:00  5 
                        09:00  7 
                        10:00  9 
                        11:00  6 
                        12:00  2 
            2009-08-02  08:00  6 
                        09:00  5 
                        10:00  8 
                        11:00  5 
                        12:00  5 
小曹      2009-08-01  08:00  6 
                        09:00  4 
                        10:00  5 
                        11:00  7 
                        12:00  9 
          2009-08-02  08:00  2 
                        09:00  8 
................................ 因业务需要,想转换成以下格式 小张    2009-08-01  08:00  5 
小张        2009-08-01  09:00  7 
小张        2009-08-01  10:00  9 
小张        2009-08-01  11:00  6 
小张        2009-08-01  12:00  2 
小张        2009-08-02  08:00  6 
小张        2009-08-02  09:00  5 
小张        2009-08-02  10:00  8 
小张        2009-08-02  11:00  5 
小张        2009-08-02  12:00  5 
小曹        2009-08-01  08:00  6 
小曹        2009-08-01  09:00  4 
小曹        2009-08-01  10:00  5 
小曹        2009-08-01  11:00  7 
小曹        2009-08-01  12:00  9 
小曹        2009-08-02  08:00  2 
小曹        2009-08-02  09:00  8 高手快快出现呀,因数据量大不可能用手工去填充的,能不能写个查询语句来解决问题,或用其它的什么方法可以实现的,在此感谢高手指教。先谢谢了 

解决方案 »

  1.   

    EXCEL 中利用空白填充技巧很容易实现。然后再导入ACCESS。QQ群 48866293 OFFICE应用挖掘  
    MS OFFICE(ACCESS\EXCE\WORD等应用技术探讨与交流!技术群,请阅群论坛中的《踢人规则》
      

  2.   


    这个主意不错,先在excel中编辑,再倒入数据库
    如果实在不行
    每个人对应10行,每个日期对应5行,且排列顺序固定的前提下

    select max(工人)over(partition by trunc((rownum-1)/10))工人,max(日期)over(partition by trunc((rownum-1)/5))日期,
      时间,金额 from tab1 
    这个报表的结构很不可取...
      

  3.   

    先导出excel,填充空白了,之后导入
      

  4.   

    查看这条链接:
    http://blog.csdn.net/cosio/archive/2008/12/18/3549657.aspx
      

  5.   

    可以用pl/sql
    创建一个空表,字段和上表相同,然后插入
    declare
    v_name varchar2(10);
    v_date date;
    begin
    for cur1 in (select * from tab1 )loop --tab1为你给出的表
    if cur1.工人 is not null then v_name:=cur1.工人; 
      end if;
    if cur1.日期 is not null then v_date:=cur1.日期 ;
      end if;
    insert into tab2 values (v_name,v_date,cur1.时间,cur1.金额);--tab2为新创建的表
    end loop;
    commit;
    end;