誰工作的用戶我有一個表有類似下面發現,連續5天,日期範圍內輸出
Emp Date Code
--- -------- ----
E1 11/1/2012 W
E1 11/1/2012 V
E2 11/1/2012 W
E1 11/2/2012 W
E1 11/3/2012 W
E1 11/4/2012 W
E1 11/5/2012 W
我希望得到一個日期範圍之間的員工列表數據(說的最後3月),連續5天爲代碼W工作,輸出日期範圍。每個員工可以在一天中使用不同的代碼記錄多個記錄。
預期成果是
下面是我試過,但我沒有接近在所有輸出我尋求
SELECT distinct user, MIN(date) startdate, MAX(date) enddate
FROM (SELECT user, date, (TRUNC(date) - ROWNUM) tmpcol
FROM (SELECT user, date
FROM tablename
where date between to_date('10/01/2012','mm/dd/yyyy') and to_date('10/03/2012','mm/dd/yyyy')
ORDER BY user, date) ot) t
GROUP BY user, tmpcol
ORDER BY user, startdate;
如果E1的Emp已連續10天的工作,他應該在兩個日期範圍的輸出中列出兩次。如果E1已連續工作9天(11/1至11/9),則應在11/1至11/9的日期範圍內僅列出一次。
我已經看到了類似的問題,但他們都沒有爲我準備好。我的數據庫是Oracle 10G,沒有PL/SQL。
而且,如果他工作超過連續5天?輸出應該如何? –
@FlorinGhita我編輯了我的問題。我希望明確.. – user841311
考慮http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:247423100346987778 – xQbert