考勤率
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
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
相关文章推荐
- 表值函数,标量值函数
- sql 联合查询速度慢,需要对其进行分组
- shell中的数学运算
- 解决No enclosing instance of type * is accessible
- 改善C++程序的建议:语法篇1<从C继承而来的特性>
- μC/OS-II微小内核分析
- lcd framebuffer
- 深拷贝与浅拷贝
- 固定VMWare虚拟机中linux系统的IP地址
- 协议分析工具学习TCP/IP(一)
- 『Data Science』R语言学习笔记,使用Swirl包学习R
- 精确小数点
- 神奇的幻方【够造奇数阶的魔方阵】
- 封装按钮
- 单个驱动的DEBUGMSG
- java面试题训练160712
- 第四天
- Transformations
- (4.6.15)千万级用户的 Android 客户端是如何养成的
- 详讲超过255台电脑的内网IP规划问题