表结构
plan_date_fm 请假开始日期 date
plan_date_to 请假结束日期 date
plan_time_fm 请假开始时 varchar2(10)
plan_time_to 请假结束时 varchar2(10)
docno          唯一编码          NUMBER
empno          员工编码          VARCHAR2(10)
name          姓名          VARCHAR2(10)
reason          请假理由          VARCHAR2(300) 

解决方案 »

  1.   

    plan_date_fm 请假开始日期 date
    plan_date_to 请假结束日期 date
    plan_time_fm 请假开始时 varchar2(10)
    plan_time_to 请假结束时 varchar2(10)假设对应值为
    2012/03/04
    2012/03/05
    12:00:00
    13:00:00
    则上面算多久呢,一个小时,还是两个小时(第天1个小时),还是怎么计算?如果请假开始时只包括小时,感觉你表设计有问题噢,也可能是我理解有问题,呵呵
      

  2.   

    select empno,sum(
    (to_date((PLAN_DATE_TO||' '||PLAN_TIME_TO),'yyyy/mm/dd hh24:mi')- to_date((PLAN_DATE_FM||' '||PLAN_TIME_FM),'yyyy/mm/dd hh24:mi'))*24 ) 
     from ierp_off_duty group by empno
    我只会根据员工号进行分组怎样按月份分呢?
      

  3.   

    group by empno,to_char(PLAN_DATE_FM,'yyyymm')
      

  4.   

     SELECT Empno, SUM((Plan_Date_To - Plan_Date_Fm) * 24) 总小时
    /*  WHERE Trunc(Plan_Date_Fm) >=
        AND Trunc(Plan_Date_Fm) <*/---加上这个条件 可以限定到指定月
      GROUP BY Empno, To_Char(Plan_Date_Fm, 'mm')
      

  5.   

    周六周日你可以排除,下面就会有星期几的
    select to_char(sysdate,'day') from dual;还有如果我7月30请2天假那7月份的假只有一天那你的这个设计或是计算方式是不正确的,不能
    请假结束日期||请假结束时-请假开始日期||请假开始时
    的,你不感觉你把夜里的时间也算上了吗?岂不是多很多