Sql server 选择具有开始日期和结束日期的记录
我们需要输出Sql server 选择具有开始日期和结束日期的记录,sql-server,tsql,Sql Server,Tsql,我们需要输出 id startDate Enddate 1 01-01-2020 NULL 1 02-01-2020 NULL 1 03-01-2020 NULL 1 04-01-2020 NULL 1 05-01-2020 05-01-2020 1 08-01-2020 NULL 1 09-01-2020 NULL 1 10-01-2020 NULL 1 11-01-2020 11-10-2020 您可以使用应用程序: 我们很乐意帮忙,但不是为了你。请试
id startDate Enddate
1 01-01-2020 NULL
1 02-01-2020 NULL
1 03-01-2020 NULL
1 04-01-2020 NULL
1 05-01-2020 05-01-2020
1 08-01-2020 NULL
1 09-01-2020 NULL
1 10-01-2020 NULL
1 11-01-2020 11-10-2020
您可以使用应用程序:
我们很乐意帮忙,但不是为了你。请试一试,发布你的尝试,并询问你在哪里被卡住了。这与现有答案有什么不同?它们与我们在同一时间发布的答案相同!你没有在同一时间发布-看看答案上的时间戳-你整整晚了2分钟。当我发布答案时,你的问题没有任何答案。2分钟无论如何都没有太大的区别,也没有给出OP的预期输出
id startdate Enddate
1 01-01-2020 05-01-2020
1 08-01-2020 11-10-2020
select * from YourTable where (startDate is not null and Enddate is not null)
SELECT t.ID, MIN(t.startdate) AS StartDate, MAX(t.Enddate) AS EndDate
FROM table t OUTER APPLY
( SELECT TOP (1) t1.Enddate
FROM table t1
WHERE t1.id = t.id AND t1.startdate >= t.startdate AND t1.enddate IS NOT NULL
ORDER BY t1.startdate
) t1
GROUP BY t.ID, t1.Enddate;