1

次の構造を持つ sqlanywhere11のビューがあります (日付は dd-mm-yyyy 形式):

ID, VALID_FROM, VALID_UNTIL, SOME_VALUE
1, 01-01-2013, 01-02-2013 1
1, 02-02-2013, 01-03-2013 2
1, 02-03-2013, 01-04-2013 3
1, null, null 3

そのため、ID が同じで日付が異なる複数のエントリがあり、日付も null である可能性があります。ここで、 VALID_FROMVALID_UNTILの間の現在の日付を持つエントリのみを選択するクエリ、または現在の日付が有効な範囲にない場合はnullの日付を持つエントリのみを選択するクエリが必要です。
次のクエリを試しました。

SELECT * FROM MYVIEW WHERE VALID_FROM IS NULL OR getdate() BETWEEN VALID_FROM AND VALID_UNTIL;

ただし、有効な日付範囲を持つ別の行がある場合でも、null行がある場合は常に選択されるため、これは機能しません。

正しい行を見つける SELECT クエリを作成することは可能ですか?

4

2 に答える 2