如何从数据库表中找到丢失的出勤率

时间:2017-04-17 10:03:52

标签: php mysql

我有两个表先是员工表,第二个是考勤表。现在我想找到每个员工在一个月内失踪的所有人。所有缺失的日期应该列在清单中。

员工表

emp_code emp_name
  1        A
  2        B

出勤表

 emp_code    Log_Date
     1      2017-04-01  
     1      2017-04-02 
     1      2017-04-03   
     2      2017-04-01  
     2      2017-04-02 
     2      2017-04-03   

预期结果

 emp_code    Log_Date
     1      2017-04-04  
     1      2017-04-05 
     1      2017-04-06 
            .
            .
     1      2017-04-30 
     2      2017-04-04  
     2      2017-04-05 
     2      2017-04-06 
            .
            .
     2      2017-04-30 

2 个答案:

答案 0 :(得分:0)

我找到了问题的正确答案。

我创建了一个month_days表,其中插入了12个月的所有日子。

id date
1  2017-04-1
2  2017-04-2
3  2017-04-3
.
.
30 2017-04-30
31  2017-05-1
32  2017-05-2
33  2017-05-3
.
.
34 2017-05-31

这是查询

SELECT *
FROM month_days d
CROSS JOIN employees e
LEFT JOIN attendances l ON d.date = DATE( l.log_date ) AND 
e.emp_code = l.emp_code
WHERE l.emp_code IS NULL
GROUP BY d.date, e.emp_code

答案 1 :(得分:-2)

SELECT e.emp_name,a.log_date FROM employee e INNER JOIN出席会议 上 (e.emp_code = a.emp_code) AND a.log_date ='';