合并2个事件表



我有两个事件跟踪表:

第一个表:Event_Date2019-12-01

正如评论中提到的,您可以在这里使用UNION ALL,然后使用LEAD来获得下一个事件的开始日期。由于您没有解释日期2019-12-05来自何处,因此我只是将其作为LEAD返回的值,如果没有另一行:

WITH Events AS(
--I assume that the data types in the 2 tables are identical
--If not CAST/CONVERT appropriately
SELECT ID,
Event_Name,
Event_Date
FROM dbo.FirstTable
UNION ALL
SELECT ID,
Event_Name,
Event_Date
FROM dbo.SecondTable)
SELECT ID,
Event_Name,
Event_Date AS Event_Start_Date,
LEAD(Event_Date,1,'20191205') OVER (ORDER BY EventDate ASC) AS Event_End_Date
FROM Events;

最新更新