2017-04-17 66 views
-5

我有兩個表第一個是員工表,第二個是考勤表。現在我想查找給定月份每個員工缺勤的情況。所有缺少的日期應該列入清單。如何從數據庫表中找到缺席的考勤

EMPLOYEE表

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

你嘗試過這麼遠嗎? – Iceman

+0

向我們展示了一些您迄今爲止嘗試過的代碼? –

回答

-2

SELECT e.emp_name,a.log_date FROM僱員Ë INNER JOIN出勤一個 ON (e.emp_code = a.emp_code) AND a.log_date ='';

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