【问题标题】:Getting data from alternate dates of same ID column从同一 ID 列的备用日期获取数据
【发布时间】:2019-09-04 21:44:44
【问题描述】:

我有一个如下表数据,现在我需要使用相同的代码获取记录,其中一行的 (Value2-Value1)*2 >= 后续日期行的 (Value2-Value1)。 (所有日期在所有代码中都是统一的)

    ---------------------------------------
    code      Date      Value1      Value2
    ---------------------------------------
    1         1-1-2018   13          14
    1         2-1-2018   14          16
    1         4-1-2018   15          18
    2         1-1-2019    1           3
    2         2-1-2018    2           3
    2         4-1-2018    3           7

ex:输出需要是 1 1-1-2018 13 14

由于我是 SQL 编码的初学者,已尽力而为,但无法通过仅在后续日期进行比较。

【问题讨论】:

    标签: tsql


    【解决方案1】:

    使用自联接。
    您可以指定在ON 子句中列出的所有条件:

    SELECT T0.code, T0.Date, T0.Value1, T0.Value2
    FROM Table As T0
    JOIN Table As T1
    ON T0.code = T1.code
    AND T0.Date = DateAdd(Day, 1, T1.Date)
    AND (T0.Value2 - T0.Value1) * 2 >= T1.Value2 - T1.Value1
    

    【讨论】:

    • 非常感谢,我在比较替代日期时感到困惑
    • 很高兴为您提供帮助 :-)
    • 只有一个 qq,如果我想应用另一个条件,例如:只有当第 1 行 1-1-2018 13 14 之前的 (value1 - value 2) 大于 3 时,只有我需要获得该输出以及原始条件。我该如何申请
    • 您可以在查询中添加where 子句以保持该条件。
    • 我试过了,但没有运气,但是如果条件必须是前一天,我怎么能把它放在 where 子句中..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多