很抱歉之前可能把这个问题搞砸了……我还是想不起来。
基本上,我有一个表来跟踪一组报告的“批准者”。还跟踪报告何时“创建”和何时“提交”。
我希望在任何报告的日期/时间重叠时进行标记。
示例(一张表,“报告”):
"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"
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
所以审批人(本例中为 10 人)有一个窗口与这些报告重叠。看起来像是带有 BETWEEN 子句的 SELECT...但我有点难过。
我有如下简单的东西:
SELECT Created, LastModified, ApprovalGroupID, count(*)
FROM shifthandover.uniquereports
WHERE ApprovalGroupID between Created and LastModified
感谢帮助!
最佳答案
根据您的问题,我了解到在创建第一个(或更早的)报告之后创建第二个(或后续)报告时会发生“重叠”,但在提交之前的报告之前 - 即批准人正在处理多个报告一次。对吗?
您可以尝试将报告表连接到自身 - 例如:
SELECT * FROM reports r1
JOIN reports r2
ON r1.approvalId=r2.approvalId
AND r2.created>r1.created
AND r2.created<r1.submitted
关于mySQL - 在单个表中选择日期范围重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609491/