[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
分類未分類

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *