我对某些时期的比较逻辑有一些问题。我的数据库中有一个如下所示的表:
Id | startDate | amount of weeks |
-----------------------------------
A1 | 2010-01-04 | 3
B3 | 2010-01-11 | 2
所有 startDates 都从一周中的同一天(星期一)开始。
现在我需要编写一个 SQL 查询,其中有 2 个参数(开始日期和新的“周期”的周数),我需要检查并返回 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} .....
我正在使用 SQL Server(但我认为非方言 SQL 也可以做到这一点)。