0
これはどこかで答えられると確信していますが、それを検索する方法はあまりよく分かりません。SQLで1つのテーブルの複数の結合
私はこのようになりますテーブル、[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