我有一个工作数据库,其中列出:
有人问我是否可以生成一个可以在每个星期一(或任何时候)运行的报告:
a)显示了当前的工作量,
b)显示了前一周的工作量(以及当前财政年度的前一周-1/4/18-31/3/19)。
其日期参数为:
week 1: 1/4/18 - 7/4/18
week 2: 8/4/18 - 15/4/18 etc
所以我要查看的实际工作量总计为1/4 / 18、8 / 4/18等
如果“完成工作的日期”字段中没有日期,则认为该工作处于活动状态。
例如,如果我们看一下这四个工作:
job 1 started 31/3/18 finished 21/4/18
job 2 started 2/4/18 finished 20/4/18
job3 started 6/4/18 unfinished
and job 4 start on 10/4/18 unfinished
然后在18/4/4上运行报告,我需要它的输出,播出这几周的工作量:
Workload:
Week 1(1/4/18) 3
Week 2 (8/4/18) 3
Week 3 4
Week 4 2
3 3 4 2
因此,就当前的工作量而言,这很容易,并且只是“日期已完成的工作”字段为空的一部分工作。
但是,我一直在努力寻找如何随时间推移计算工作量的方法-基本上,我需要查询以确定如何准确地计算出特定日期的工作完成字段何时为空。
任何帮助/帮助将不胜感激。
谢谢。
答案 0 :(得分:0)
基于对问题的理解,我的解决方案
p {
position: relative;
right: 100px;
width: 400px;
text-align: center;
}
-计算从第1周04062018开始到10062018并在本周之后完成的完成的工作
DECLARE @t TABLE ( JobType NVARCHAR(50), JobStart DATETIME, JobFinish DATETIME )
INSERT INTO @t
(JobType,JobStart, JobFinish)
VALUES
('Type1', '20180604', '20180611')
,('Type2', '20180611', '20180626')
,('Type3', '20180618', '20180620')
,('Type4', '20180625', NULL)
/*
Week Date Ranges
1. 04062018 to 10062018
2. 11062018 to 17062018
3. 18062018 to 24062018
4. 25062018 to 01072018
*/
输出
SELECT
T.JobType
,T.JobStart
,T.JobFinish
FROM @t T
WHERE (T.JobStart >= '20180604' AND T.JobStart <= '20180610') AND T.JobFinish > '20180610'