私は DB2 を使用していますが、SQL の任意のフレーバーを使用するソリューションは、変換するのに十分簡単です。
このデータベースやデータベースを使用するアプリケーションを設計したのではありません。このアプリケーション、その動作、またはデータを変更する権限はありません。開始日と終了日の従来の使用法とは異なるため、特定の時点の選択のような単純なものを書くのに苦労しています。
表の関連/編集部分は次のとおりです。
OBJECTID FACILITY_ID START_DATE END_DATE FACILITY_NAME
1001 500 1/1/1980 5/1/2000 Really Old Name
1002 500 1/1/1980 1/1/2006 Old Name
1003 500 1/1/1980 null Current Name
1004 501 1/1/1980 3/1/2008 Closed Facility Name
1004 502 1/1/1980 null Another Current Name
私が返したいのは、2005 年 7 月 1 日に有効なレコードです。
OBJECTID FACILITY_ID START_DATE END_DATE FACILITY_NAME
1002 500 1/1/1980 1/1/2006 Old Name
1004 501 1/1/1980 3/1/2008 Closed Facility Name
1004 502 1/1/1980 null Another Current Name
副選択を避けようとしていますが、必要な場合があることを理解しています。副選択が必要な場合は、1 つに制限したいと思います。開始日と終了日の間を検索しても、終了日が null のレコードが 1 つしかない施設は返されないため、機能しません。OR 条件を追加して null の終了日を含めると、場合によっては複数のレコードが返されることがあります。この問題はサービス上では非常に単純に見えるため、ばかばかしいほど明白な解決策を見逃しているに違いありません。誰にもアイデアはありますか?