如何用sql server 计算每组tttt最大值对于的时间减去tttt最小值对于的tttt的分钟数,求出如下结果:
select 工作人员编号,进出货标志,组,
case when "间隔时间(小时)_用秒参数"=0 then '0'
else cast("间隔时间(小时)_用秒参数" as varchar)
end "间隔时间(小时)_用秒参数",
case when "间隔时间(小时)_用分钟参数"=0 then '0'
else cast("间隔时间(小时)_用分钟参数" as varchar)
end "间隔时间(小时)_用分钟参数"
from
(
select 工作人员编号,进出货标志,组,
--用相差秒转换精度好像更高一点
Convert(decimal(15,8),datediff(second,min(交易时间),max(交易时间)))/3600 as "间隔时间(小时)_用秒参数",
Convert(decimal(15,8),datediff(minute,min(交易时间),max(交易时间)))/60 as "间隔时间(小时)_用分钟参数"
from
( --模拟数据
select '436742123' 工作人员编号,'出' 进出货标志,'2022/11/20 11:24:33' 交易时间,255 组,1 出货次序
union all
select '436742123' 工作人员编号,'出' 进出货标志,'2022/11/21 08:49:11' 交易时间,255 组,2 出货次序
union all
select '436742123' 工作人员编号,'出' 进出货标志,'2022/11/21 11:14:37' 交易时间,255 组,3 出货次序
union all
select '436742123' 工作人员编号,'进' 进出货标志,'2022/11/21 11:37:41' 交易时间,226 组,1 出货次序
union all
select '436742123' 工作人员编号,'进' 进出货标志,'2022/11/21 11:41:16' 交易时间,227 组,1 出货次序
union all
select '436742123' 工作人员编号,'进' 进出货标志,'2022/11/21 12:48:52' 交易时间,228 组,1 出货次序
union all
select '436742123' 工作人员编号,'出' 进出货标志,'2022/11/21 15:27:57' 交易时间,229 组,1 出货次序
union all
select '436742123' 工作人员编号,'出' 进出货标志,'2022/11/21 16:10:15' 交易时间,229 组,2 出货次序
-- ...
) t
group by 工作人员编号,进出货标志,组
) t
order by 工作人员编号,组
SELECT [工作人员编号]
,[进出货标志]
,[组]
,datediff(ss,min([交易时间]),max([交易时间]))/3600.0
FROM [master].[dbo].[test_001] group by [工作人员编号]
,[进出货标志]
,[组]
分组求出最大值和最小值,再用时间差函数求出时间间隔
如有帮助,望采纳