表A(ID INT,MATCH1炭,MATCH2炭,MATCH3炭,開始日期日期時間,結束日期,狀態炭)日期重疊場景
id match1 match2 match3 startdate enddate
1 AAA BBB CCC 2006-01-01 2007-01-01
2 AAA BBB CCC 2006-12-12 2008-01-01
3 AAA BBB CCC 2008-01-01 2012-02-02
4 DDD EEE FFF 2009-01-01 2012-01-01
5 DDD EEE FFF 2013-01-01 2020-01-01
參考表B(MATCH1炭,MATCH2,MATCH3,開始日期日期時間,結束日期)
match1 match2 match3 startdate enddate
AAA BBB CCC 2006-01-01 2015-01-01
DDD EEE FFF 2009-01-01 2015-01-01
好了,所以[統計]是NULL,我在表A與 'FAIL' 來填充STAT時:
1)對於TableB中匹配MATCH1,MATCH2,MATCH3,日期(開始和結束)存在於範圍之外。讓我們看看ID = 5 effectivedates = 2013 - 2020,但在其參考表中,其2009-2015因此ID = 5會得到'失敗'。
2)在一組中,set1是match1,match2,match3相等的記錄,所以ID123是一組,ID4是另一組。所以,在一組中,生效日期(開始和結束)日期重疊。即使第1組(ID1,2,3)存在於參考表中相應記錄的日期範圍內,但ID = 2的有效日期與ID = 1的有效日期重疊,因此ID = 2獲得了「FAIL」
預期的結果:
id match1 match2 match3 startdate enddate stat
1 AAA BBB CCC 2006-01-01 2007-01-01 NULL
2 AAA BBB CCC 2006-12-12 2008-01-01 FAIL
3 AAA BBB CCC 2008-01-01 2012-02-02 NULL
4 DDD EEE FFF 2009-01-01 2012-01-01 NULL
5 DDD EEE FFF 2013-01-01 2020-01-01 FAIL
在此先感謝。
先取得第一個,然後「失敗」下一個重疊。 – 2011-12-19 21:52:30
在ID 2和ID 2重疊的第二種情況下,您如何決定使ID 2的行「失敗」而不是ID 1的行?在這種情況下,你是否始終以失敗告終? – 2011-12-19 21:56:40