改一下: select to_char(日期,'yyyy-mm') as 月份,所在部门 as 部门,姓名,出勤情况,count(出勤情况) as 天数 from my_table group by to_char(日期,'yyyy-mm'),所在部门,姓名,出勤情况
select to_char(日期,'yyyy-mm') 月份,部门,姓名,出勤情况,count(*) 天数 from my_table group by to_char(日期,'yyyy-mm') 月份,部门,姓名,出勤情况;只能这样了,因为出勤情况太多而不确定,而oracle中又不能旋转表结构。如果你是用Developer的report builder,就可以使用“矩阵报表”来做了,呵呵
其实这个也就是一个简单的竖表横置, 我在以前很多的帖子中发过。 不过好像大家都没有怎么注意。 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 自己稍微再调试一下。
select to_char(日期,'yyyy-mm') as 月份,所在部门 as 部门,姓名,出勤情况,count(出勤情况) as 天数 from my_table group by to_char(日期,'yyyy-mm'),所在部门,姓名,出勤情况
from my_table
group by to_char(日期,'yyyy-mm') 月份,部门,姓名,出勤情况;只能这样了,因为出勤情况太多而不确定,而oracle中又不能旋转表结构。如果你是用Developer的report builder,就可以使用“矩阵报表”来做了,呵呵
我在以前很多的帖子中发过。
不过好像大家都没有怎么注意。
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 自己稍微再调试一下。