select 月份,部门,姓名,出勤情况,count(出勤情况) as 天数 from my_table group by 月份,部门,姓名,出勤情况;

解决方案 »

  1.   

    改一下:
    select to_char(日期,'yyyy-mm') as 月份,所在部门 as 部门,姓名,出勤情况,count(出勤情况) as 天数 from my_table group by to_char(日期,'yyyy-mm'),所在部门,姓名,出勤情况
      

  2.   

    select to_char(日期,'yyyy-mm') 月份,部门,姓名,出勤情况,count(*) 天数
    from my_table 
    group by to_char(日期,'yyyy-mm') 月份,部门,姓名,出勤情况;只能这样了,因为出勤情况太多而不确定,而oracle中又不能旋转表结构。如果你是用Developer的report builder,就可以使用“矩阵报表”来做了,呵呵
      

  3.   

    只能这样了,因为出勤情况太多而不确定,而oracle中又不能旋转表结构。如果你是用Developer的report builder,就可以使用“矩阵报表”来做了,呵呵
      

  4.   

    其实这个也就是一个简单的竖表横置,
    我在以前很多的帖子中发过。
    不过好像大家都没有怎么注意。
    select  to_date(c,'yyyy-mm') 年月,
            a 部门,
            b 姓名,
            sum(decode(state,'出勤',e,0)) "出勤(天数)",
            sum(decode(state,'出差',e,0)) "出差(天数)",
            sum(decode(state,'工伤',e,0)) "工伤(天数)",
            sum(decode(state,'探亲',e,0)) "探亲(天数)"
    from (        
    select partid a,name b ,
           to_char(date,'yyyymm') c ,
           state d,count(*) e
    from u_tab
    group by partid,name,
    to_char(date,'yyyymm'),state
          )
    group by to_date(c,'yyyy-mm'),a,b   自己稍微再调试一下。