@dt_endSELECT@bz=1,@dt=@dt_bsegin,@dt_begin=@dt_end,@dt_end=@dtELSESET@bz=0SEL" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

缺勤天數(shù)統(tǒng)計(jì)的處理示例.sql

系統(tǒng) 1703 0

--計(jì)算兩個(gè)日期之間相差的工作天數(shù)
CREATE FUNCTION f_WorkDateDiff(
@dt_begin datetime,
@dt_end datetime)
RETURNS int
AS
BEGIN
?DECLARE @workday int,@i int,@bz bit,@dt datetime
?IF @dt_begin>@dt_end
??SELECT @bz=1,@dt=@dt_bsegin,@dt_begin=@dt_end,@dt_end=@dt
?ELSE
??SET @bz=0
?SELECT @i=DATEDIFF(Day,@dt_begin,@dt_end)+1,
??@workday=@i/7*5,
??@dt_begin=DATEADD(Day,@i/7*7,@dt_begin)
?WHILE @dt_begin< =@dt_end
?BEGIN
??SELECT @workday=CASE
???WHEN (@@DATEFIRST+DATEPART(Weekday,@dt_begin)-1)%7 BETWEEN 1 AND 5
???THEN @workday+1 ELSE @workday END,
???@dt_begin=@dt_begin+1
?END
?RETURN(CASE WHEN @bz=1 THEN -@workday ELSE @workday END)
END
GO

--測(cè)試數(shù)據(jù)
CREATE TABLE tb(Name varchar(10),WorkDate datetime)
INSERT tb SELECT 'aa','2005-01-03'
UNION ALL SELECT 'aa','2005-01-04'
UNION ALL SELECT 'aa','2005-01-05'
UNION ALL SELECT 'aa','2005-01-06'
UNION ALL SELECT 'aa','2005-01-07'
UNION ALL SELECT 'aa','2005-01-10'
UNION ALL SELECT 'aa','2005-01-14'
UNION ALL SELECT 'aa','2005-01-17'
UNION ALL SELECT 'bb','2005-01-11'
UNION ALL SELECT 'bb','2005-01-12'
UNION ALL SELECT 'bb','2005-01-13'
UNION ALL SELECT 'bb','2005-01-10'
UNION ALL SELECT 'bb','2005-01-14'
UNION ALL SELECT 'bb','2005-01-20'
GO

--缺勤統(tǒng)計(jì)
DECLARE @dt_begin datetime,@dt_end datetime
SELECT @dt_begin='2005-1-1', --統(tǒng)計(jì)的開(kāi)始日期
?@dt_end='2005-1-20'??????? --統(tǒng)計(jì)的結(jié)束日期

--統(tǒng)計(jì)
SELECT Name,Days=SUM(Days) FROM(
?SELECT Name,Days=dbo.f_WorkDateDiff(
???DATEADD(Day,1,WorkDate),
???ISNULL(DATEADD(Day,-1,(
????SELECT MIN(WorkDate) FROM tb aa
????WHERE Name=a.Name
?????AND WorkDate>a.WorkDate AND WorkDate< =@dt_end
?????AND NOT EXISTS(
??????SELECT * FROM tb
??????WHERE WorkDate>@dt_begin AND WorkDate< =@dt_end
???????AND Name=aa.Name
???????AND dbo.f_WorkDateDiff(WorkDate,aa.WorkDate)=2))
????),@dt_end))
?FROM(
??SELECT Name,WorkDate FROM tb
??WHERE WorkDate>=@dt_begin AND WorkDate<@dt_end
??UNION ALL --為每組編號(hào)補(bǔ)充查詢起始編號(hào)是否缺號(hào)的輔助記錄
??SELECT DISTINCT Name,DATEADD(Day,-1,@dt_begin) FROM tb
?)a
?WHERE (@@DATEFIRST+DATEPART(Weekday,WorkDate)-1)%7 BETWEEN 1 AND 5
??AND NOT EXISTS(
???SELECT * FROM tb
???WHERE WorkDate>@dt_begin AND WorkDate< =@dt_end
????AND Name=a.Name
????AND dbo.f_WorkDateDiff(WorkDate,a.WorkDate)=-2)
)aa GROUP BY Name
/*--結(jié)果
Name?????? Days
---------------- -----------
aa???????? 6
bb???????? 8
--*/

缺勤天數(shù)統(tǒng)計(jì)的處理示例.sql


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 免费中文字幕 | 日本高清视频在线 | 亚洲狠狠婷婷综合久久久久图片 | 额去鲁97在线观看视频 | 男女超猛烈啪啦啦的免费视频 | 日韩成人精品在线 | 人人狠狠综合88综合久久 | 美女羞羞视频网站 | 日本国产视频 | 国产专区精品 | 九色成人蝌蚪国产精品电影在线 | 天堂一区二区三区四区 | 欧美黄色xxx| 性生潮久久久不久久久久 | 精品视频在线播放 | 国产视频中文字幕 | 亚洲精品久久久中文字幕 | 午夜国产精品免费观看 | 亚洲精品久久久久影院 | 欧美视频在线第一页 | 日本妇人成熟A片一区-老狼 | 91中文字幕在线 | jzzjlzz亚洲乱熟在线播放 | 午夜免费| 99精品丰满人妻无码A片 | 亚洲国产日韩欧美高清片a 高清视频在线播放 | 五月激情综合婷婷 | 国产成人精品高清在线观看99 | 全日本爽视频在线 | 色噜噜狠狠色综合久 | 午夜大片 | 国产欧美精品午夜在线播放 | av色偷偷 | 日韩精品一区二区三区 | 亚州一区二区三区 | 久久亚洲国产午夜精品理论片 | 狠狠操伊人 | 亚洲精品在线免费观看视频 | 李宗瑞国产福利视频一区 | 国产男女爽爽爽免费视频 | 制服丝袜成人动漫 |