再會!我試著在整個堆棧溢出中搜索這個問題,但我找不到正確的關鍵字來搜索,我想最好向你們尋求幫助。
我正在嘗試創建基於兩個表的出勤記錄:
考勤表有如下數據
| idnumber | punchin | punhout | date_created |
+-------------+-------------+-------------+----------------+
| 0002 | 7:30:00 | 16:00:00 | 2021-11-27 |
| 0003 | 7:30:00 | 16:00:00 | 2021-11-27 |
| 0004 | 7:30:00 | 16:00:00 | 2021-11-27 |
| 0002 | 7:30:00 | 16:00:00 | 2021-11-28 |
| 0003 | 7:30:00 | 16:00:00 | 2021-11-28 |
| 0004 | 7:30:00 | 16:00:00 | 2021-11-28 |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-29 |
| 0002 | 7:30:00 | 16:00:00 | 2021-11-29 |
| 0003 | 7:30:00 | 16:00:00 | 2021-11-29 |
| 0004 | 7:30:00 | 16:00:00 | 2021-11-29 |
而 calendar_dimension 只是一個帶有日期的基本表格,如下所示:
請注意,這是一個完整的月曆:
| date | datestatus |
+-------------+---------------+
| 2021-11- 1 to 2021-11-25 |
| 2021-11-26 | Holiday |
| 2021-11-27 | |
| 2021-11-28 | |
| 2021-11-29 | |
| 2021-11-30 | |
到目前為止,我所做的是加入 calendar_dimension 和出勤表。
現在,我有這樣的事情:例如對於 00001,它正在我的一端工作:
| idnumber | punchin | punhout | date_created |
+-------------+-------------+-------------+----------------+
| 0001 | 7:30:00 | 16:00:00 | 2021-11-29 |
對於 0002:
| idnumber | punchin | punhout | date_created | Status |
+-------------+-------------+-------------+----------------+------------+
| 0001 | 7:30:00 | 16:00:00 | 2021-11-27 | Present |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-28 | Present |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-29 | Present |
我希望員工的歷史記錄表如下所示:
| idnumber | punchin | punhout | date_created | Status |
+-------------+-------------+-------------+----------------+------------+
| 2021-11-1 to 2021-11-25 |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-26 | Holiday |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-27 | Absent |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-28 | Absent |
| 0001 | 7:30:00 | 16:00:00 | 2021-11-29 | Present |
11 月 30 日將在明天顯示。
有沒有其他方法可以使這成為可能?謝謝
我假設您正在嘗試計算status
列,對嗎?
類似的東西IF(datestatus = 'Holiday', 'Holiday', IFNULL(punchin, 'Absent', 'Present')) AS status
應該可以工作,儘管它有點不優雅。
您必須確保您沒有進行內部聯接以獲得該 ID 沒有出席的行,即, calendar_dimension c LEFT JOIN attendance a ON ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句