答:
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 工作人员编号,组
