我有三个表,其中一个是工作人员通过批处理完成的任务,这是另一个表,每个任务都有一个batch_id,多个任务可以具有相同的batch_id。第三个表是batch_log,其中有人在批次上工作的所有时间都以唯一ID,批次ID,人员用户ID,start_time和end_time的形式记录。如果where条件在连接表上,我会得到重复的结果吗?
每个任务都有一个估计的以秒为单位的再生时间和以秒为单位的估计不再生成时间。我期待得到由任务表中的字段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
我担心我会得到更高的估值比是真实的,因为任务表的多个条目可以有相同的批次。
更需要信息,什么是多任务,给我们一些样本数据。今天的问题是什么? TGIF – JonH
感谢Jon,为了回应,我已经更新了描述,应该发布什么样的数据? – davidahines
您的解决方案直接进入任务表而不考虑批次表中的批次。您需要加入任务 - >批次 - >批处理日志。请参阅下面的解决方案 – JonH