下面是我的查询和结果,我还在下面添加了我想要实现的内容。
UPH代表“每小时单位数”'
SELECT
TimeLog.ID
,TimeLog.DeptCode AS 'DC'
,TimeLog.OpCode AS 'OC'
,TimeLog.StartTime AS 'Start'
,TimeLog.FinishTime AS 'Finish'
,ElapsedTime = convert(time(0),dateadd(second,datediff(second,StartTime,FinishTime),0))
,TimeLog.Units
,UPH = cast(isnull(Units / nullif(datediff(minute,StartTime,FinishTime)*1.0,0),0.0)*60 as decimal(10,0))
FROM dbo.TimeLog INNER JOIN dbo.AssociateInfo WITH (NOLOCK)
ON AssociateInfo.ID = TimeLog.ID
WHERE TimeLog.DeptCode = 'FB' AND TimeLog.OpCode = 'PU' AND TimeLog.Units IS NOT NULL
ID DC OC Start Finish ElapsedTime Units UPH
2375935 FB PU 10:36:00 14:20:00 03:44:00 263 70
11259 FB PU 03:15:00 04:00:00 00:45:00 100 133
11259 FB PU 04:00:00 05:00:00 01:00:00 150 150
11259 FB PU 05:15:00 06:00:00 00:45:00 50 67
11259 FB PU 06:00:00 07:00:00 01:00:00 88 88
11259 FB PU 07:40:00 08:00:00 00:20:00 77 231
11259 FB PU 08:00:00 09:00:00 01:00:00 88 88
我希望看到结果显示ElapsedTime,Units和UPH的总和,其中ID,DC和OC列具有相同的值。
ID DC OC ElapsedTime Units UPH
2375935 FB PU 03:44:00 263 70
11259 FB PU 04:50:00 816 169
答案 0 :(得分:1)
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
imgSelected1.image = UIImage(imgSelected)// give me a Error <
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//the imgSelected is a UIImagePickerController
//the imgSelected1 is a UIImageView
// how can i get the data from the imgSelected and pass it to the
imgSelected1??
//***************************************
}
}
}
使用您的查询输出的rextester演示:http://rextester.com/IZZX78524
返回:
SELECT
TimeLog.ID
, TimeLog.DeptCode AS 'DC'
, TimeLog.OpCode AS 'OC'
--, TimeLog.StartTime AS 'Start'
--, TimeLog.FinishTime AS 'Finish'
--, ElapsedTime = convert(time(0),dateadd(second,sum(datediff(second,StartTime,FinishTime)),0))
/* for greater than 24 hours: */
, ElapsedTime = right('0' + convert(varchar(9),(sum(datediff(second,Start,Finish)) / 3600 )),2) + ':'
+ right('0' + convert(varchar(2),(sum(datediff(second,Start,Finish)) / 60) % 60 ),2) + ':'
+ right('0' + convert(varchar(2),(sum(datediff(second,Start,Finish)) % 60 )),2)
, Units = sum(TimeLog.Units)
, UPH = cast(isnull(sum(Units) / nullif(sum(datediff(minute,StartTime,FinishTime))*1.0,0),0.0)*60 as decimal(10,0))
FROM dbo.TimeLog
INNER JOIN dbo.AssociateInfo WITH (NOLOCK)
ON AssociateInfo.ID = TimeLog.ID
WHERE TimeLog.DeptCode = 'FB'
and TimeLog.OpCode = 'PU'
and TimeLog.Units IS NOT NULL
group by
TimeLog.ID
, TimeLog.DeptCode
, TimeLog.OpCode
答案 1 :(得分:0)
您可以使用GROUP BY
:
SELECT tl.ID, tl.DeptCode AS DC, tl.OpCode AS OC,
ElapsedTime = convert(time(0), dateadd(second, sum(datediff(second, StartTime, FinishTime)), 0)) ,
SUM(tl.Units) as units,
UPH = cast(coalesce(Units / nullif(sum(datediff(minute, StartTime, FinishTime))*1.0, 0), 0.0) * 60 as decimal(10, 0) )
FROM dbo.TimeLog tl INNER JOIN
dbo.AssociateInfo ai
ON ai.ID = tl.ID
WHERE tl.DeptCode = 'FB' AND tl.OpCode = 'PU' AND tl.Units IS NOT NULL
GROUP BY tl.ID, tl.DeptCode, tl.OpCode;
答案 2 :(得分:0)
您可以尝试以下
SELECT
TimeLog.ID
,MAX(TimeLog.DeptCode) AS 'DC'
,MAX(TimeLog.OpCode) AS 'OC'
,SUM( convert(time(0),dateadd(second,sum(datediff(second,StartTime,FinishTime)),0))) AS 'ElapsedTime'
,SUM(TimeLog.Units) AS 'Units'
,(cast(isnull(sum(TimeLog.Units) / nullif(sum(datediff(minute,TimeLog.StartTime,TimeLog.FinishTime))*1.0,0),0.0)*60 as decimal(10,0)))AS 'UPH'
FROM dbo.TimeLog
WHERE TimeLog.DeptCode = 'FB' AND TimeLog.OpCode = 'PU' AND TimeLog.Units IS NOT NULL
GROUP BY TimeLog.ID