我有一个列出登录日期和购买日期的表格,其中包含以下列:
customerid, Datetime, type
其中type是枚举格式,并且"购买"或者"登录"。
我想获得所有购买的清单,并附上购买前该人的最后登录日期。
customerid, purchasedatetime, lastloginbeforepurchase
我考虑过内部联接,交叉申请和其他几种方式,但无法找到一个好的解决方案。
答案 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