Tsql 随时间跟踪工作负载

Tsql 随时间跟踪工作负载,tsql,reporting-services,Tsql,Reporting Services,我有一个工作数据库,其中列出: 工种 作业开始的日期 作业完成日期 有人问我是否可以制作一份报告,可以在每周一(或任何时候)运行: 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 因此,我将查看2018年1月4日、2018年8月4日等的实时工作负载总量 如果“作业完成日期”字段中没有日期,则作业被视为活动

我有一个工作数据库,其中列出:

  • 工种
  • 作业开始的日期
  • 作业完成日期
有人问我是否可以制作一份报告,可以在每周一(或任何时候)运行:

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
因此,我将查看2018年1月4日、2018年8月4日等的实时工作负载总量

如果“作业完成日期”字段中没有日期,则作业被视为活动

例如,如果我们看看这4份工作:

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
并在2018年4月22日运行了一份报告,我需要它的输出,预测这几周的工作量:

Workload:

Week 1(1/4/18)    3
Week 2 (8/4/18)   3
Week 3            4
Week 4            2
3 3 4 2

因此,就当前工作负载而言,这很简单,只需计算“作业完成日期”字段为空的作业数

然而,我正在努力解决如何随着时间的推移计算工作负载的问题——基本上,我需要一个查询来解决如何获得一个准确的计数,即在特定的一周内,作业完成日期字段何时为空

任何帮助/协助都将不胜感激


谢谢

我的解决方案基于我对您问题的理解

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
*/
--计算在第1周04062018至10062018开始并在本周之后完成的已完成作业

SELECT
     T.JobType
    ,T.JobStart
    ,T.JobFinish 
FROM @t T
WHERE (T.JobStart >= '20180604' AND T.JobStart <= '20180610') AND T.JobFinish > '20180610'

我想一周一组应该感谢你回来。我的问题是如何显示财务周(例如,第1周是当前财务年度的第一周),此外,如何生成t-sql以显示特定工作在特定周内是否为当前工作。这正是我努力的地方。然后你需要创建一个日历表,并加入其中。我没有添加日历表的权限。理想情况下,我希望只使用我正在使用的数据表中的开始和完成日期(如上所述)创建一些内容。因此,我不能运行一个查询来显示:今天的当前工作负载;上周的工作量?例如,到目前为止,我们有一份现场工作,上周这个时候我们有两份:第二份工作在2018年1月7日至2018年5月7日之间开放,所以现在已经关闭。我只是想捕获在特定日期打开的作业数,例如,它们有一个开始日期,而它们的完成日期>该特定日期。您需要质疑不创建日历表的决定。无论如何,感谢您提供数据集。
JobType JobStart    JobFinish
Type1   2018-06-04 00:00:00.000 2018-06-11 00:00:00.000