0
我確定這是在某個地方回答的,但我不太確定如何搜索它。SQL中一個表的多重聯接
我有一個表,[tbl_Data],看起來像這樣:
ID| From_Dt | To_Dt |
1 |01/01/2016 | 01/03/2016|
1 |01/04/2016 | 01/09/2016|
1 |01/09/2016 | 01/20/2016|
希望輸出的樣子:
ID|Prev_From_Dt|Prev_To_Dt |Recent_From_Dt|Recent_To_Dt|
1 |01/01/2016 |01/03/2016 |01/04/2016 |01/09/2016 |
1 |01/04/2016 |01/09/2016 |01/09/2016 |01/20/2016 |
這是我嘗試在代碼:
SELECT
t1.ID,
Prev_From_DT = t1.FROM_DT,
Prev_To_DT = t1.TO_DT,
Recent_From_DT = t2.FROM_DT,
Recent_To_DT = t2.TO_DT
FROM
tbl_Data t1
LEFT JOIN tbl_Data t2 on t1.ID = t2.ID AND t1.TO_DT <= t2.FROM_DT
您正在使用哪個版本的SQL? (MySQL,Postgres等)如果它是MySQL,那麼你可能會發現這個SO回答有幫助http://stackoverflow.com/questions/1284441/how-does-a-mysql-self-join-work(魔術短語是「自我連接」 - 一個與自身連接的表格)。 –
你用你試過的查詢得到了什麼輸出? –
使用MSSQL。我提供的查詢爲每個小於To_Dt的From_Dt創建一條記錄。 – CurlieQ1034