首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用日期相同的不同列中的不同行

引用日期相同的不同列中的不同行
EN

Stack Overflow用户
提问于 2021-08-19 15:34:49
回答 1查看 21关注 0票数 0

请在下面找到样本日期。我想创建一个新的列Payment_received,它查找非空的payment_dates,并减去(付款日期-该账号的最早短信日期)。例如,对于账号12345,计算结果为(2021-07-22 - 2021-07-20) =2天;对于账号99999,计算结果为(2021-08-13 - 2021-08-10) =3天。我在想,如果我可以创建一个何时执行此计算的案例,然而,我不知道如何引用同一帐号的不同行。

代码语言:javascript
复制
 SMS_Date     Account Number  Payment_Date     Payment_received      
 2021-07-20        12345         NULL               NULL
 2021-07-21        12345         NULL               NULL
 2021-07-22        12345        2021-07-22            2
 2021-08-10        99999         NULL               NULL
 2021-08-11        99999         NULL               NULL
 2021-08-12        99999         NULL               NULL
 2021-08-13        99999       2021-08-13            3
EN

回答 1

Stack Overflow用户

发布于 2021-08-19 17:16:34

使用CROSS APPLY查找原始表中每一行的最早短信日期。

代码语言:javascript
复制
SELECT
    pi.*,
    CASE
        WHEN pi.Payment_Date IS NOT NULL THEN DATEDIFF(d, smsdate.First_SMS_Date, pi.Payment_Date)
        ELSE NULL
    END AS Payment_Received
FROM
    PaymentsInfo pi
    CROSS APPLY (
        SELECT
            MIN(SMS_Date) AS First_SMS_Date
        FROM
            PaymentsInfo smst
        WHERE
            pi.Payment_Date IS NOT NULL AND pi.Account_Number = smst.Account_Number
    ) smsdate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68850709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档