【问题标题】:Count Sequential Dates in SQL在 SQL 中计算连续日期
【发布时间】:2018-02-15 17:48:36
【问题描述】:

所以我一直在寻找 Stack 并找不到满足我特定需求的解决方案。

因此,目前我正在尝试计算是否看到 Pat 签到实践 - 这是我的表格和一些关于我要实现的目标的注释(仅供参考 - 尝试使用 T-SQL 解决解决方案)

  1. 当存在相同的 Pat ID 和相同的 Practice 并且日期连续时,会考虑签入
  2. 否则它会重新签入

所以有一个分组列表明 PatID 和 PracticeID 是相同的并且按日期排序 - 但是 - 我似乎无法集中精力尝试查看前一个 EndDate 并看到下一个行的开始日期是连续的。

我认为它需要一些递归/光标的东西,但我不完全确定从哪里开始。

感谢所有帮助!

【问题讨论】:

    标签: sql date count


    【解决方案1】:

    以下查询应仅从您的表中返回 PatID/PracticeID 组合的行,对于这些组合,您的表中不存在相同组合的另一行,但 DateEnd 是在DateStart.

    SELECT o.PatID, o.PracticeID
      FROM <table> o
     WHERE NOT EXISTS( SELECT 1
                         FROM <table> i
                        WHERE o.PatID = i.PatID
                          AND o.PracticeID = i.PracticeID
                          AND DATEDIFF(d, i.DateEnd, o.DateStart) = 1 )
     GROUP BY o.PatID, o.PracticeID
    

    注意:i.DateEndo.DateStart 的顺序可能需要颠倒。

    【讨论】:

    • 是的!正是我想要的!谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多