2015-02-07 38 views
0

我對存儲在表attendance具有下列列名員工的考勤數據:選擇假數據

  • emp_id爲(職員)
  • 日期
  • 類型(請假,缺席等)

(還有其他的,但我忽略他們爲簡單起見)

我的目標是獲取給定本月該僱員休假(類型=「離開」)和所有日期最後一個月的最後一個假期,如果有的話

使用兩個查詢(我使用PHP來處理數據)很容易,但是有什麼辦法可以在單個查詢中完成?

+0

@Isaiah當然,不要急於此處。 :-)這只是我似乎無法將我的頭圍繞在這一個。 – dotslash 2015-02-07 16:12:35

+0

我會把這兩個查詢與UNION – bpgergo 2015-02-07 16:14:47

+0

@bpgergo結合啊!這是有道理的。萬分感謝! :) – dotslash 2015-02-07 16:16:19

回答

0
SELECT * FROM table_name 
WHERE type="Leave" AND 
date <= (CURRENT_DATE() - 30) 

選擇字段,等你想那麼瑟組合where子句中使用MySQL的CURRENT_DATE()功能。我在一個月內扣除30天30天。

如果日期是日期列,則會返回1個月或更長時間之前離開的所有人。

編輯:

如果你想具體的日期,更改第2個月這樣的:

date <= (date_number - 30) 
+0

我想你誤解了我。 「離開」並不意味着該人離開公司;這是人們休假的時候。 :) – dotslash 2015-02-07 16:21:59

+0

那麼,你可以編輯條件,但這可能是最好的方法來做到這一點 – 2015-02-07 16:25:20

0

我回答我的問題,從而將其關閉。正如@bpgergo在評論中指出的那樣,UNION會在這裏做到這一點。