您的位置:首页 > 其它

考勤率

2016-07-12 22:41 190 查看
SELECT cast(cast( SUM(SumTime)*100 as float)/SUM(TotalTime) as decimal(10,2)) FROM (
SELECT ROW_NUMBER() OVER(ORDER BY CamId) AS RowNum,CamId,CamName,CamDateStartUse,
(SELECT DevTypeName FROM dbo.Com_DevType WHERE DevTypeId=CamTypeId) AS DevTypeName
,SUM(ISNULL(CamTimer_Unit,0)) AS SumTime,

ISNULL(DATEDIFF(MINUTE,CASE WHEN
'2016-05-01'<DATEADD(DAY,1,CONVERT(varchar(100),
ISNULL(CamDateStartUse,'1900-1-1'), 23))

THEN DATEADD(DAY,1,CONVERT(varchar(100),
ISNULL(CamDateStartUse,'1900-1-1'), 23)) ELSE '2016-05-01' END,CASE WHEN
'2016-05-28'>GETDATE() THEN DATEADD(HOUR,1,GETDATE()) ELSE
'2016-05-28' END),0)
AS TotalTime
FROM dbo.Dat_Camera LEFT JOIN dbo.Dat_CameraTimer
ON CamTimer_CamId=CamId

AND CamTimer_CreateTime>=CASE WHEN
'2016-05-01'<DATEADD(DAY,1,CONVERT(varchar(100), CamDateStartUse,
23))
THEN
DATEADD(DAY,1,CONVERT(varchar(100), CamDateStartUse, 23)) ELSE
'2016-05-01' END AND CamTimer_CreateTime<='2016-05-28'
WHERE CamProjId='11980'
AND (CamFlowState=15 or CamFlowState=16)
AND CamTypeId IN(SELECT DevTypeId FROM dbo.Com_DevType WHERE DevCategory=1)
GROUP BY CamId,CamName,CamTypeId,CamDateStartUse) AS t
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: