我有三个表,一个是工厂工人通过将它们分批完成的任务,另一个表,每个任务都有一个batch_id,多个任务可以有相同的batch_id。第三个表是 batch_log,其中以唯一 id、batch_id、人的用户 ID、start_time 和 end_time 的形式记录了某人处理批次的所有时间。
每个任务都有一个以秒为单位的estimate_recurring 时间和一个以秒为单位的estimated_nonrecurring 时间。我正在寻找按 operation_id 分组的这两个字段的总和,它是任务表中的一个字段,表示它是否是激光切割、去毛刺、绘画等任务。
问题是我只想要在 time_period 期间具有批处理日志的任务。批次在 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
我担心我会得到比实际更高的估计,因为任务表中的多个条目可以具有相同的批次。