我有一个人力员工考勤表
t_ygkq(id,员工ID,年,月,1号考勤,2号......31号)这个考勤表是每个员工,每月一条记录的。从这个表中出一张报表,查询出员工个人年度考勤,很简单的SQL:select * from 员工ID=:as_id and 年 =:as_n order by y;
查询出来的记录将是从一月到十二月的考勤记录。但问题是:有个新员工是从7月份才来的,也就是说从7月才开始有考勤记录的。如何让查询出来的记录,也是按1月到12月出来???
(虽然没有12个月的记录,要查出12条记录来,没有实际记录的可以为空)
t_ygkq(id,员工ID,年,月,1号考勤,2号......31号)这个考勤表是每个员工,每月一条记录的。从这个表中出一张报表,查询出员工个人年度考勤,很简单的SQL:select * from 员工ID=:as_id and 年 =:as_n order by y;
查询出来的记录将是从一月到十二月的考勤记录。但问题是:有个新员工是从7月份才来的,也就是说从7月才开始有考勤记录的。如何让查询出来的记录,也是按1月到12月出来???
(虽然没有12个月的记录,要查出12条记录来,没有实际记录的可以为空)
(select * from 员工ID=:as_id and 年 =:as_n) t,
t_months tt where t.mon(+)=tt.mon;
(select rownum a1 from dba_objects where rownum<13) a,
(select * from 员工ID=:as_id and 年 =:as_n) b where a.a1=b.月(+) order by a.a1;