これは実際、stackoverflow に関する私の最初の質問です。
そうは言っても、ここに私の問題があります:
私は自動車製造会社で働いており、最近、マシンがアイドル状態のときを追跡する機能を実装しました。これは、「idle_start」と呼ばれるイベントの開始時刻と終了時刻を評価することによって行われます。
現在、マシンのアイドル時間の合計を取得しようとしています。今、私はこれを理解しましたが、idle_times のいくつかは 24 時間よりも長いです。
そのため、特定の 1 日の idle_time の合計のみを表示するように指定すると、合計には 24 時間を過ぎたアイドル時間もカウントされます。
その 24 時間で CUTTING OFF のオプションを提供したいと考えています。これは可能ですか?
クエリは次のとおりです。
{コード}
SELECT r.`name` 'Producer'
, m.`name` 'Manufacturer'
-- , timediff(re.time_end, re.time_start) 'Idle Time Length'
, SEC_TO_TIME(SUM((TIME_TO_SEC(TIMEDIFF(re.time_end, re.time_start))))) 'Total Time'
, (SUM((TIME_TO_SEC(TIMEDIFF(re.time_end, re.time_start)))))/3600 'Total Time in Hours'
, (((SUM((TIME_TO_SEC(TIMEDIFF(re.time_end, re.time_start)))))/3600))/((IF(r.resource_status_id = 2, COUNT(r.resource_id), NULL))*24) 'Percent Machine is Idle divided by Machine Hours'
FROM resource_event re
JOIN resource_event_type ret
ON re.resource_event_type_id = ret.resource_event_type_id
JOIN resource_event_type reep
ON ret.parent_resource_event_type_id = reep.resource_event_type_id
JOIN resource r
ON r.`resource_id` = re.`resource_id`
JOIN manufacturer m
ON m.`manufacturer_id` = r.`manufacturer_id`
WHERE re.`resource_event_type_id` = 19
AND ret.`parent_resource_event_type_id` = 3
AND DATE_FORMAT(re.time_start, '%Y-%m-%d') >= '2013-08-12'
AND DATE_FORMAT(re.time_start, '%Y-%m-%d') <= '2013-08-18'
-- AND re.`resource_id` = 8
AND "Idle Time Length" IS NOT NULL
AND r.manufacturer_id = 13
AND r.resource_status_id = 2
GROUP BY 1, 2
上部のダッシュ マークは無視してかまいません。そして、これをより簡単に理解し、私を助けてくれる人たちの頭痛の種を減らすために、より具体的にできるかどうか教えてください.
どうもありがとう!