0

それらを 2 つの異なるグループにグループ化するにはどうすればよいですか? 単一の列のみを使用します

サンプルデータ:

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

あなたが試すことができます

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 に答える
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 に答える