2017-04-17 8 views
-5

私は2つのテーブルが最初に従業員テーブルであり、2つ目は出席テーブルです。今私は毎月の各従業員の不足している出席をすべて見つけたいと思う。欠けている日付はすべて一覧に表示されます。データベーステーブルから不在の出席を見つける方法

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、従業員の電子 INNER FROM a.log_dateは出席に ON を登録しよう(e.emp_code = a.emp_code) AND a.log_date = '';

0

私の質問の正解が見つかりました。

私は12ヶ月のすべての日を挿入したmonth_daysテーブルを作成しました。

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 
関連する問題