iT邦幫忙

0

SQL找出 開始日期 及 結束日期 還在職員工

SQL找出 開始日期 及 結束日期 還在職員工

問題不會問 台灣教育真好笑!!

select * from emp where
trunc(開始日期) >= trunc(sysdate) and
trunc(nvl(結束日期,sysdate)) <= trunc(sysdate) --還沒離職

看更多先前的討論...收起先前的討論...
小成 iT邦高手 10 級 ‧ 2009-04-08 13:29:54 檢舉
這是在問台灣教育嗎??
glennlin iT邦研究生 4 級 ‧ 2009-04-08 14:41:53 檢舉
關台灣教育啥事啊!

你是神喔,還能知道發問者是台灣長大的?
說不定他跟你是同一個教育制度的呢
Oracle語法???
我想您沒必要如此回應吧?
"神"人!
Albert iT邦高手 1 級 ‧ 2009-04-13 08:07:18 檢舉
感謝回應 ,, 回應真感謝 ...
Albert iT邦高手 1 級 ‧ 2009-04-13 08:07:24 檢舉
感謝回應 ,, 回應真感謝 ...
Albert iT邦高手 1 級 ‧ 2009-04-13 08:07:31 檢舉
感謝回應 ,, 回應真感謝 ...

2 個回答

10
外獅佬
iT邦大師 1 級 ‧ 2009-04-09 11:30:40
最佳解答

還在職....那...『結束日期』應該是空白或null的吧.....
還沒離職怎麼會有『結束日期』的資料???

Albert iT邦高手 1 級 ‧ 2009-04-13 07:57:09 檢舉

你最有文人氣質,, 不將神扯進來,,

因為還在職,, 因此結束日期 為 null

要把他當成還在職

因此用 sysdate 來替代

=> sysdate 就是還在職.

因為有預計離退職的問題, 此欄位會先有該員離職調離該公司日期

外獅佬 iT邦大師 1 級 ‧ 2009-04-13 10:23:53 檢舉

呵呵,『神』??這個我就不太懂了^^!
既然有預計離職的問題,可以僅比對『結束日期』即可,也就是
sysdate > 結束日期,『=』的話,就見仁見智。

SELECT * FROM [資料表] WHERE NOT ISNULL([結束日期]) AND [結束日期]>=sysdate

最好加個判斷isnull,也就是結束日期不是null的才納入,希望對您有幫助。

8
bestlong
iT邦研究生 5 級 ‧ 2009-04-13 08:21:16

還要考慮是否已到職

查詢某日當時的在職人員清單
where (到職日 <= 查詢日) and (離職日 >= 查詢日)

查詢日期範圍內的在職人員清單
where (到職日 <= 查詢結束日) and (離職日 >= 查詢開始日)

Albert iT邦高手 1 級 ‧ 2009-04-14 00:28:04 檢舉

謝謝回應

我要發表回答

立即登入回答