首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server将最近的记录与另一个表匹配

问Server将最近的记录与另一个表匹配
EN

Stack Overflow用户
提问于 2018-11-24 14:50:49
回答 1查看 23关注 0票数 1

我有两张桌子,一张是顾客与同事交谈的时间,另一张是他们购买的时间,但我不知道如何将最近的购买与某位同事联系起来。

例如

表1-同事互动

代码语言:javascript
复制
[ColleagueID]  [DateOfInteraction]  [CustomerID]
------------------------------------------------
       A        2018-11-22 12:00         123
       B        2018-11-22 12:02         123

表2-采购清单

代码语言:javascript
复制
[PurchaseID]  [DateOfPurchase]  [PurchaseOutcome]  [CustomerID]
----------------------------------------------------------------
     1         2018-11-22 12:01      FAIL              123
     2         2018-11-22 12:03      SUCCESS           123

我要做的是将这两条记录连接在一起,最初我在CustomerID上这样做,但这显然会造成重复,因为customerID在表2和表1中出现了两次。然后我试图缩小范围,说明DateOfInteraction < DateOfPurchase将消除第一条记录,但是我不确定如何匹配第二条记录?

结果应该是

代码语言:javascript
复制
[ColleagueID]  [DateOfInteraction]  [CustomerID]  [PurchaseID]  [DateOfPurchase]  [PurchaseOutcome]
---------------------------------------------------------------------------------------------------
       A        2018-11-22 12:00        123            1         2018-11-22 12:01      FAIL
       B        2018-11-22 12:02        123            2         2018-11-22 12:03      SUCCESS
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-24 14:54:16

我认为apply做你想做的事:

代码语言:javascript
复制
select p.*, i.*
from purchases p outer apply
     (select top (1) i.*
      from interactions i
      where i.customer_id = p.customer_id and
            i.DateOfInteraction < p.DateOfPurhase
      order by i.DateOfInteraction desc
     ) i;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53459350

复制
相关文章

相似问题

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