私は 3 つのテーブルを持っています。1 つは工場労働者がバッチに入れて完了するタスクであるタスクです。これは別のテーブルで、各タスクには batch_id があり、複数のタスクは同じ batch_id を持つことができます。3 番目のテーブルは batch_log で、誰かがバッチで作業したすべての時間が、一意の ID、batch_id、その人のユーザー ID、start_time、および end_time の形式で記録されます。
各タスクには、秒単位の Estimated_recurring 時間と秒単位の Estimated_nonrecurring 時間があります。レーザー切断、バリ取り、塗装などのタスクであるかどうかを表すタスク テーブルのフィールドである operation_id でグループ化された両方のフィールドの合計を取得しようとしています。
問題は、time_period 中に batch_log にあったバッチを持つタスクのみが必要なことです。バッチには、batch_log テーブルに複数のエントリがあります。
ここに私がしようとしているものがあります:
SELECT
operation_id, SUM(t.estimated_nonrecurring + t.estimated_recurring) / 3600 as work_completed
FROM tasks t
INNER JOIN batch_log l on t.batch_id = l.batch_id
WHERE
l.start_time BETWEEN DATE("10:00:00") AND DATE(NOW())
AND
l.time_elapsed < "10:00:00"
GROUP BY t.operation_id
タスク テーブル内の複数のエントリが同じバッチを持つ可能性があるため、実際よりも高い見積もりが得られるのではないかと心配しています。