【发布时间】:2015-12-09 17:42:35
【问题描述】:
我正在尝试根据报告类型计算关闭工单所需的平均天数。
我想出了如何使用以下查询对任何一种类型的报告执行此操作:
SELECT
CONVERT(DATE,SubmitDate) as 'Date'
,SUM(DATEDIFF(DAY, SubmitDate, DateClosed)) / COUNT(*) as 'Report1Avg'
FROM Table1
WHERE Status = 'Closed'
AND ReportType = '1'
GROUP BY CONVERT(DATE,SubmitDate)
但是,我希望获得所有不同类型报告的平均值。我试图让结果集如下所示:
Date Submitted Report1Avg Report2Avg Report3Avg Report4Avg
9/1/2015 5 10 11 NULL
9/2/2015 NULL 22 3 5
9/3/2015 1 3 NULL NULL
这是表格:
ticket SubmitDate ReportType Status DateClosed
1 3/7/2014 NULL Closed 8/18/2014
2 3/17/2014 1 Closed 3/19/2014
3 3/17/2014 3 Closed 4/1/2014
4 3/18/2014 3 Closed 4/1/2014
5 3/18/2014 3 Closed 4/1/2014
6 3/19/2014 4 Closed 3/19/2014
7 3/25/2014 4 Closed 3/25/2014
8 3/25/2014 2 Closed 3/31/2014
9 3/25/2014 NULL Closed 3/31/2014
10 3/25/2014 1 Closed 3/31/2014
我尝试使用 UNION 但没有奏效。创建 VIEW 也不起作用。
我发现了一些类似的帖子,但它们不涉及平均值。
感谢您的任何建议。
【问题讨论】:
-
所以你想要按类型和提交日期的平均值?
-
是的,如想要的结果集中所示。
标签: sql sql-server average