[SQL] 抓出連續上班超過八天者

1. 先整理出 工號 (Code )& 出勤日 (DT)
 
2.  SQL  分三段  
 a. 先抓出每個工號連續上班的記錄
 b. 抓出每次連續上班的天數
 c. 篩選上班連續八天者 ( 法律規定 上班七天一定要休假一天 ) 
 
 
 
 
with t
as(
select 
px=DATEADD(DD,-ROW_NUMBER()over(partition by Code 
     order by DT asc),DT),
Code,DT
from Login_V
),
m as(
select Code,MIN(DT) as StartTime,MAX(DT) as EndTime
from t
group by px,Code
)
select Code,DATEDIFF(DD,StartTime,EndTime)+1 as Days 
from m
where DATEDIFF(DD,StartTime,EndTime)>=8
分類未分類

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料