1
考慮到以下一組數據,我試圖確定如何選擇組合日期範圍的開始和結束日期,當它們相互交叉時。查找多組日期之間的最小和最大日期
例如,對於PartNum 115678,我希望我的最終結果集顯示日期範圍2012/01/01 - 2012/01/19
(自日期範圍相交以來合併的行1,2和4)和2012/02/01 - 2012/03/28
(第3行,因爲這些不與之前發現的範圍)。
對於PartNum 213275,我想選擇該零件的唯一行,2012/12/01 - 2013/01/01
。
編輯: 我目前正在與下面的SQL語句玩耍,但它不給我正是我需要的。
with DistinctRanges as (
select distinct
ha1.PartNum "PartNum",
ha1.StartDt "StartDt",
ha2.EndDt "EndDt"
from dbo.HoldsAll ha1
inner join dbo.HoldsAll ha2
on ha1.PartNum = ha2.PartNum
where
ha1.StartDt <= ha2.EndDt
and ha2.StartDt <= ha1.EndDt
)
select
PartNum,
StartDt,
EndDt
from DistinctRanges
以下是編輯顯示的查詢結果:
謝謝你的詳細解答。我會試一試。 – acedanger
@RichardTheKiwi:我剛剛遇到你用T-SQL編寫的掃雷碼,現在只是我的心靈爆發,而下一刻我看到你的回答這個問題太簡單了。 – praveen
@Praveen感謝您的讚揚:) – RichardTheKiwi