0

我如何将它们分组到两个不同的组中只使用单个列

样本数据:

date_entry time_start time_finished idle_code qty_good
2013 年 8 月 8 日 13:00 13:30 6 10     
2013 年 8 月 8 日 13:30 15:20 0 20
2013 年 8 月 8 日 15:20 15:30 6 5
2013 年 8 月 8 日 15:30 16:25 0 10
2013 年 8 月 8 日 16:25 16:40 7 0
2013 年 8 月 8 日 16:40 17:25 0 40
2013 年 8 月 8 日 17:25 17:40 3 10
2013 年 8 月 8 日 17:40 24:00 1
2013 年 8 月 8 日 24:00 00:00 1
2013 年 8 月 8 日 00:00 00:30 1

结果

                             idle_code 总分钟数。
        空闲时间 #1 410:00 分钟
        空闲时间 #2 0:00 分钟
        空闲时间 #3 15:00 分钟
        空闲时间 #4 0:00 分钟
        空闲时间 #5 0:00 分钟
        空闲时间 #7 15:00 分钟
        空闲时间 #0,6 250:00 分钟

(A) 总空闲时间 440:00 分钟(空闲时间 #0,6 不包括在内)
(B) 总运行时间 250:00 分钟(仅空闲时间 #0,6)

我怎样才能得到 idle_code 1 的所有总和,或者我怎样才能将它们分组以获得它的总和?

示例 sql

SELECT 
     dbo.t_monitoring_pi_oper_entry.wo_number,   
     dbo.t_monitoring_pi_oper_entry.qty_rejected,   
     dbo.t_monitoring_pi_oper_entry.operator,   
     dbo.t_monitoring_pi_oper_entry.reject_code,   
     dbo.t_monitoring_pi_oper_entry.qty_good,   
     dbo.t_monitoring_pi_oper_entry.idle_code,   
     dbo.t_monitoring_pi_oper_entry.time_finished,   
     dbo.t_monitoring_pi_oper_entry.time_start,   
     dbo.t_monitoring_pi_oper_entry.date_entry  

FROM dbo.t_monitoring_pi_oper_entry   
4

3 回答 3

0

我不确定我是否了解全部要求,但您绝对可以尝试这样的事情。除了计算空闲时间外,它与 Dante Ditan 发布的内容相似。

SELECT idle_code, SUM(DATEDIFF(minute, time_start, time_finished))
FROM dbo.t_monitoring_pi_oper_entry  
GROUP BY idle_code

您可以通过添加来扩展它

WHERE idle_code in (0,6)
于 2013-08-16T09:31:13.197 回答
0
     SELECT SUM(dbo.t_monitoring_pi_oper_entry.time_finished,1,0)  
     FROM dbo.t_monitoring_pi_oper_entry 
     GROUP BY idle_code 
于 2013-08-16T01:56:17.047 回答
0

你可以试试

CASE WHEN idle_code IN (0,6) THEN '0,6' ELSE CAST(idle_code AS varchar) END

SELECT '#' +  CASE WHEN idle_code IN (0,6) THEN '0,6' ELSE CAST(idle_code AS varchar) END  AS  idle_code,
    SUM( DATEDIFF(ss, time_start, time_finished) )
FROM dbo.t_monitoring_pi_oper_entry
GROUP BY '#' +  CASE WHEN idle_code IN (0,6) THEN '0,6' ELSE CAST(idle_code AS varchar) END
于 2013-08-16T07:00:51.037 回答