SQL中的重叠日期

用户名

我有一张表格,列出患者一直接受任何形式的药物的情况,这些药物看起来像这样:

Pat ID  Type of Admin    Order ID     Start Date          End Date
1       Medication       1            01/01/2016 04:20    01/04/2016 05:30
1       Medication       2            01/03/2016 18:30    01/07/2016 10:15

我想知道确切的重叠日期范围。因此,结果表如下所示:

Pat ID      First_Overlap      Last_Overlap
1           01/03/2016 18:30   01/04/2016 05:30

我正在使用Netezza。有谁知道如何做到这一点?

史蒂夫·摩尔

我对Netezza并不熟悉,但是如果我要在MySQL或其他SQL变体中执行此操作,则会执行以下操作:

SELECT C.PatID AS PatID, MAX(C.FirstOverlap) AS FirstOverlap, MIN(C.LastOverlap) As LastOverlap
FROM (
  SELECT A.PatID AS PatID, CASE WHEN B.StartDate <= A.EndDate THEN B.StartDate ELSE A.EndDate END AS FirstOverlap,
  CASE WHEN B.EndDate >= A.StartDate THEN B.EndDate ELSE A.StartDate END AS LastOverlap
  FROM careAdmin AS A LEFT JOIN careAdmin AS B ON A.PatID = B.PatID AND A.OrderID = B.OrderID
  WHERE NOT B.EndDate <= A.StartDate OR B.StartDate >= A.EndDate
  ) C
GROUP BY C.PatID

即使语法可能稍有不同,也有望帮助您找到正确的答案。

问候

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查日期在SQL中是否重叠

来自分类Dev

在SQL中查找日期范围重叠的记录

来自分类Dev

SQL重叠日期

来自分类Dev

SQL重叠日期

来自分类Dev

在SQL中合并具有重叠日期范围的记录

来自分类Dev

在SQL中检测和合并日期范围的连续重叠

来自分类Dev

在SQL中合并具有重叠日期范围的记录

来自分类Dev

在SQL表中合并重叠的日期间隔

来自分类Dev

不重叠日期的 SQL 分组结果

来自分类Dev

在Oracle SQL中根据重叠的日期范围连接客户端记录

来自分类Dev

对重叠值或日期与 sql 中的 id 分组进行求和/计数

来自分类Dev

在2个列表中查找重叠的日期并返回重叠的期间

来自分类Dev

如何避免Django模型中的日期重叠?

来自分类Dev

Excel公式:表中的重叠日期

来自分类Dev

查找日期是否在N对列表中重叠

来自分类Dev

在Oracle中打印不重叠的日期块

来自分类Dev

在postgres中合并日期范围以消除重叠

来自分类Dev

Excel公式:表格中的重叠日期

来自分类Dev

重叠日期

来自分类Dev

重叠日期

来自分类Dev

SQL查询删除重叠的开始日期和结束日期

来自分类Dev

SQL Server 2008:查询以搜索重叠日期内的今天的日期

来自分类Dev

拆分 SQL 中的重叠时间

来自分类Dev

根据R中的日期类型确定重叠的日期间隔

来自分类Dev

检查日期是否与同一表中的日期重叠

来自分类Dev

Oracle SQL使用触发器检查重叠的日期

来自分类Dev

SQL查询同一表的重叠日期

来自分类Dev

SQL Server 2014 合并重叠日期范围

来自分类Dev

如何处理R中数据框中的重叠日期