繁体   English   中英

与最新记录连接的Sql Join

[英]Sql Join that Joins with the latest record

我有两个表,其中一个称为Event,具有以下数据类型:

 CustomerID int
 eventId int
 eventDate datetime
 eventtype varchar(20)

另一个名为Activity的数据类型如下。

 CustomerID int,
 ActivityId,
 activitytime datetime

您可以在http://sqlfiddle.com/#!2/4ddbf/4中找到示例

我的目标是进行每个活动,并在其末尾附加eventId和eventtype的当前状态,该状态取决于时间戳

例如:一行的输出将是

CUSTOMERID----------TIMESTAMP----------- EVENTTYPE-----eventID  
141----------------2012/02/08 12:14:35.697-----Packaging-----------1

我试图进行联接和联合,但最终会得到一个表,该表的每个活动都与事件类型的每种可能组合相关联。 或者通过联合,我能够得到一个合并了两个表并用n / a填充空白点的表,我的猜测是我将不得不编写一个可以传递日期的函数,然后找到最近的事件在指定日期之前。

您可以按事件ID进行分组,并获取该事件的最新信息

SQL小提琴: http ://sqlfiddle.com/#! 2/26199/2

SELECT E.CustomerID, 
       MAX(A.activitytime) as TIMESTAMP,
       MAX(E.eventtype) as EventType,
       E.eventID
FROM Event E
JOIN Activity A
ON E.CustomerID = A.CustomerID
GROUP BY E.CustomerID, E.EventId

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM