いくつかの期間の比較のロジックに問題があります。データベースに次のようなテーブルがあります。
Id | startDate | amount of weeks |
-----------------------------------
A1 | 2010-01-04 | 3
B3 | 2010-01-11 | 2
すべてのstartDateは、同じ曜日(月曜日)に開始します。
次に、2つのパラメーター(開始日と新しい「期間」の週数)を持つSQLクエリを作成する必要があり、startDateが同じであるすべての行をチェックして返す必要があります。ただし、実際には新しい「ピリオド」の範囲内にあるすべての行も返される必要があります。
これを明確にするためのいくつかの例:
- When I give the following parameters (2010-01-04, 1) I would need to have row 1 with id A1 returned
- (2010-01-11, 1) ---> return A1,B3
- (2009-12-28, 1) ---> return nothing
- (2009-12-28, 2) ---> return A1
- (2010-01-18, 1) ---> return A1,B3
これで、パラメータなどの操作方法がわかりました。したがって、基本的に、SQLクエリを構築するためのロジックについて少し助けが必要になります。
SELECT Id FROM table WHERE startDate={0}またはstartDate={1}....。
私はSQLServerを使用しています(ただし、非標準のSQLでもうまくいくと思います)。