我有一个简单的表结构,其中包含分配给资源的任务:
| TASK | START_DATE | RESOURCE | CLOSED |
| T1 | 2018-10-10 00:00:00.000 | Bill | 0 |
| T2 | 2018-11-12 00:00:00.000 | Bob | 0 |
| T3 | 2018-11-17 00:00:00.000 | Ben | 0 |
我有一份报告,目的是显示下周需要完成的任务,我目前的过滤器是:
WHERE CLOSED = 0 AND ((DATEPART(wk,Tasks.Start_Date) -1) = DATEPART(wk,getutcdate()) and DATEPART(YY,Tasks.Start_Date) = DATEPART(yy,getutcdate()))
当任务有下个星期的开始日期时,过滤器完美地工作,但是我也有每季度运行的任务,这些任务被这个过滤器排除在外。
有没有一种方法可以构建一个过滤器,其中包括本季度的所有任务以及下周的任务?例如,尽管在过去有一个开始日期(2018-10: 00:00:00.000),但标识为T1的任务仍然处于打开状态,我仍然需要它在我的报告中显示出来。
谢谢!
发布于 2018-11-08 20:22:11
假设您使用的是MSSQL,您可以使用下面的简化条件来提供更高的可读性。
WHERE CLOSED = 0
AND Tasks.Start_Date < DATEADD(WEEK,1,GETDATE())编辑:如果需要将任务从下周开始,只在本季度开始,因为上面的where子句带来了所有已经启动并具有CLOSED=0的任务,请在下面使用:
WHERE CLOSED = 0
AND Tasks.Start_Date < DATEADD(WEEK,1,GETDATE())
AND YEAR(Tasks.Start_Date) = YEAR(GETDATE())
AND DATEPART(QUARTER, Tasks.Start_Date)=DATEPART(QUARTER, GETDATE())https://stackoverflow.com/questions/53215473
复制相似问题