Sql server 查找购买前的最后登录日期

Sql server 查找购买前的最后登录日期,sql-server,Sql Server,我有一个表,列出了登录日期和购买日期,包括以下列: customerid, Datetime, type 其中类型为枚举格式,可以是购买,也可以是登录 我想获得所有购买的清单,并附上该人在购买前的最后登录日期 customerid, purchasedatetime, lastloginbeforepurchase 我考虑过内部连接、交叉应用和其他几种方法,但没有找到好的解决方案。您可以使用外部应用搜索最后一次登录: 请提供一行创建。。。一些“插入”的句子…`。嗨,欢迎来到SO。我们需要一些

我有一个表,列出了登录日期和购买日期,包括以下列:

customerid, Datetime, type
其中类型为枚举格式,可以是购买,也可以是登录

我想获得所有购买的清单,并附上该人在购买前的最后登录日期

customerid, purchasedatetime, lastloginbeforepurchase

我考虑过内部连接、交叉应用和其他几种方法,但没有找到好的解决方案。

您可以使用外部应用搜索最后一次登录:


请提供一行创建。。。一些“插入”的句子…`。嗨,欢迎来到SO。我们需要一些细节,以便能够提供更多的帮助。一些样本数据和期望的输出将大大改善这个问题。这是一个很好的起点。
select  purchase.customerid
,       purchase.[datetime] as purchasedatetime
,       login.[datetime] as lastloginbeforepurchase
from    YourTable purchase
outer apply
        (
        select  top 1 *
        from    YourTable login
        where   login.customerid = purchase.customerid
                and login.[datetime] < purchase.[datetime]
        order by
                login.[datetime] desc
        ) login