select empno, empname, sum(overtime_total -leavetime_total)over(partition by empno) from ( select e.empno, e.empname, f_cokstat_equal_time(a.starttime, a.endtime) overtime_total from t_employeeinfo e, t_overtime a where e.empno = a.empno(+)
union all
select e.empno, e.empname, f_cokstat_record_one(b.starttime, b.endtime) leavetime_total from t_employeeinfo e, t_leave b where trunc(to_date(b.starttime,'yyyy-mm-dd hh24')) <= to_date(b.endtime,'yyyy-mm-dd') and e.empno = b.empno(+) ); ¹Ø×¢ ²»ÖªµÀÂ¥Ö÷Ïë¸Éʲô£¿ SQL code: sum(overtime_total)over(partition by empno)- sum(leavetime_total)over(partition by empno)