0
MEMBER_STATUS = 2のテーブルからすべてのエントリを選択したいとします。ただし、このステータスは時間とともに変化します。メンバーのステータスが変更されるたびに、古いエントリはADRESS_historyという別のテーブルに保存されます。アドレステーブルの最後の変更は、2016年4月1日後に行われた場合にはタイムスタンプに基づく条件
ADDRESS (each ID only exists once)
ID | FIRSTNAME | LASTNAME | MEMBER_STATUS | DTM
1 | Tom | Mueller | 2 | 2016-04-02
2 | John | Doe | 2 | 2016-03-02
3 | David | Allen | 4 | 2016-04-04
4 | Neil | Fiore | 8 | 2016-04-04
ADDRESS_history (IDs can have multiple entries)
ID | FIRSTNAME | LASTNAME | MEMBER_STATUS | DTM
2 | John | Doe | 2 | 2012-02-02
3 | David | Allen | 2 | 2013-03-01
1 | Tom | Mueller | 1 | 2015-03-30
2 | John | Doe | 2 | 2015-08-22
1 | Tom | Mueller | 4 | 2012-02-02
1 | Tom | Mueller | 3 | 2013-02-02
することは、私は表ADDRESS_historyにおけるユーザーの最新のエントリのメンバーのステータスを使用したいと思います。 ADDRESSテーブルの最後の変更が2016-04-01より前に行われたとき、ADDRESSテーブルのエントリのメンバーステータスを使用したいと思います。これを反映するためにこのクエリをどのように変更できますか?
select *
from ADDRESS a
join ADDRESS_history using (ID)
MEMBER_STATUS = 2
結果は、あなたがここから開始することができます
ID | FIRSTNAME | LASTNAME | MEMBER_STATUS | DTM
1 | Tom | Mueller | 1 | 2015-03-30
2 | John | Doe | 2 | 2016-03-02
3 | David | Allen | 2 | 2013-03-01