我有两个表,一个名为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填充空白点的表,我的猜测是我将要编写一个我可以在日期中传递的函数,然后找到最近的事件在指定日期之前。
答案 0 :(得分:0)
您可以对事件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