购买前查找上次登录日期

时间:2017-08-22 16:32:43

标签: sql-server

我有一个列出登录日期和购买日期的表格,其中包含以下列:

customerid, Datetime, type

其中type是枚举格式,并且"购买"或者"登录"。

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

customerid, purchasedatetime, lastloginbeforepurchase

我考虑过内部联接,交叉申请和其他几种方式,但无法找到一个好的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用outer apply搜索最后一次登录:

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