很好奇人们如何有效地解决以下问题。
有一个简单的表来跟踪一组报告的“批准者”。还跟踪报告何时“创建”和何时“提交”。创建和提交报告之间的时间跨度应该是当批准者 ID 提交给单个报告时,但是如果他们的批准者 ID 出现在同一时间跨度内用于另一个报告我想标记它。
示例(一张表,“报告”):
"Created" "Submitted" "ApproverID"
4/20/2012 5:01:32 AM 4/20/2012 5:30:32 AM 10
4/20/2012 5:08:32 AM 4/20/2012 5:45:32 AM 10
4/20/2012 5:01:32 AM 4/19/2012 5:38:16 PM 15
在这个例子中,我想选择并返回重叠的行,它们是:
"Created" "Submitted" "ApproverID" "Duplicate_ID"
4/20/2012 5:01:32 AM 4/20/2012 5:30:32 AM 10 1
4/20/2012 5:08:32 AM 4/20/2012 5:45:32 AM 10 1
...并可能附加一个具有唯一值的新列“Duplicate”,以报告特定的重叠命中,我可以对其执行 SELECT DISTINCT Duplicate_ID。
我试过 BETWEEN 但无济于事。任何帮助表示赞赏!
谢谢
最佳答案
未经测试:
SELECT R1.Created, R1.Submitted, R1.ApproverID, count(*)
FROM reports R1
INNER JOIN reports R2
on R1.Created between R2.Created and R2.Submitted --ON
OR R2.created between R2.Created and R2.submitted --OR
GROUP BY R1.Created, R1.Submitted, R1.ApproverID
关于mysql - 如何选择以查找具有唯一值的日期/时间重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489959/