-4

すみません、テーブルがある mysql の例のテーブルにその日付がない場合は、日付を追加します

ID      |   name    |   date        |   clock in    |   clock out
---------------------------------------------------------------
1001    |   A       |   2013-09-18  |   09:40       |   17:15
1001    |   A       |   2013-09-20  |   08:20       |   17:35
1001    |   A       |   2013-09-21  |   08:40       |   17:40
1001    |   A       |   2013-09-23  |   08:10       |   17:50

したがって、テーブルに日付を追加して、出勤時刻と退勤時刻を設定する方法は、null を設定する例です。

ID      |   name    |   date        |   clock in    |   clock out
---------------------------------------------------------------
1001    |   A       |   2013-09-18  |   09:40       |   17:15
1001    |   A       |   2013-09-19  |   null        |   null
1001    |   A       |   2013-09-20  |   08:40       |   17:40
1001    |   A       |   2013-09-21  |   08:10       |   17:50
1001    |   A       |   2013-09-22  |   null        |   null
1001    |   A       |   2013-09-23  |   08:10       |   17:50

ありがとう

4

1 に答える 1

0

それでも興味がある場合は、これが必要です。

SELECT 
COALESCE(id,1001) id,
COALESCE(name,'A') name,
fixed_days.fixed_date,
clockin,clockout
FROM t 
RIGHT JOIN 
(SELECT CURDATE() as fixed_date 
UNION ALL SELECT CURDATE() - INTERVAL 1 day 
UNION ALL SELECT CURDATE() - INTERVAL 2 day 
UNION ALL SELECT CURDATE() - INTERVAL 3 day 
UNION ALL SELECT CURDATE() - INTERVAL 4 day 
UNION ALL SELECT CURDATE() - INTERVAL 5 day 
UNION ALL SELECT CURDATE() - INTERVAL 6 day) AS fixed_days 
ON t.record_date = fixed_days.fixed_date
WHERE fixed_days.fixed_date <= (select max(record_date) from t);

SQL フィドル..

于 2013-09-26T11:43:44.487 に答える