我對存儲在表attendance
具有下列列名員工的考勤數據:選擇假數據
- emp_id爲(職員)
- 日期
- 類型(請假,缺席等)
(還有其他的,但我忽略他們爲簡單起見)
我的目標是獲取給定本月該僱員休假(類型=「離開」)和所有日期最後一個月的最後一個假期,如果有的話。
使用兩個查詢(我使用PHP來處理數據)很容易,但是有什麼辦法可以在單個查詢中完成?
我對存儲在表attendance
具有下列列名員工的考勤數據:選擇假數據
(還有其他的,但我忽略他們爲簡單起見)
我的目標是獲取給定本月該僱員休假(類型=「離開」)和所有日期最後一個月的最後一個假期,如果有的話。
使用兩個查詢(我使用PHP來處理數據)很容易,但是有什麼辦法可以在單個查詢中完成?
SELECT * FROM table_name
WHERE type="Leave" AND
date <= (CURRENT_DATE() - 30)
選擇字段,等你想那麼瑟組合where子句中使用MySQL的CURRENT_DATE()
功能。我在一個月內扣除30天30天。
如果日期是日期列,則會返回1個月或更長時間之前離開的所有人。
編輯:
如果你想具體的日期,更改第2個月這樣的:
date <= (date_number - 30)
我想你誤解了我。 「離開」並不意味着該人離開公司;這是人們休假的時候。 :) – dotslash 2015-02-07 16:21:59
那麼,你可以編輯條件,但這可能是最好的方法來做到這一點 – 2015-02-07 16:25:20
我回答我的問題,從而將其關閉。正如@bpgergo在評論中指出的那樣,UNION會在這裏做到這一點。
@Isaiah當然,不要急於此處。 :-)這只是我似乎無法將我的頭圍繞在這一個。 – dotslash 2015-02-07 16:12:35
我會把這兩個查詢與UNION – bpgergo 2015-02-07 16:14:47
@bpgergo結合啊!這是有道理的。萬分感謝! :) – dotslash 2015-02-07 16:16:19