Do you use System Center Service Manager, and do you or your boss want to know how many Incident Requests the support team are resolving within the same day as it was created? If yes, then you are on the right blog post.
Run the query below against the Data Warehouse database DWDataMart, and you will get a monthly trend report on resolved Incident Requests.
Configure variables in the Query
There are two variable in the Query you need to configure before you run it.
SET @Year = 2014; define the year the request was resolved
SET @Supportgroup = ‘1. Level Support’; define the support group you want analyze
/*
*******************************************************************************
Author: Brian Fahrenholtz, Coretech A/S. https://blog.ctglobalservices.com
Purpose: This SQL Query return the numbers of Incidents that was
resolved within the same day as it was created.
Usage: Run the query on the DWDataMart database.
History:
1.0.0 BFA 12/04/2014 Created initial version.
*******************************************************************************
*/
-- Variable declarations
DECLARE @Year VARCHAR(50);
DECLARE @Supportgroup VARCHAR(50);
-- Initialize the variable.
SET @Year = 2014;
SET @Supportgroup = '1. Level Support';
-- Main routines
SELECT a.ResolvedMonth AS 'Month', a.IncidentResolved AS 'Total IR Resolved', b.IncidentResolved AS 'Resolved within the same day' FROM
(SELECT IncidentResolved.ranges AS 'ResolvedMonth', count(*) AS 'IncidentResolved' FROM
(
SELECT CASE
WHEN DATEPART(month,I.ResolvedDate) = '1' then '1'
WHEN DATEPART(month,I.ResolvedDate) = '2' then '2'
WHEN DATEPART(month,I.ResolvedDate) = '3' then '3'
WHEN DATEPART(month,I.ResolvedDate) = '4' then '4'
WHEN DATEPART(month,I.ResolvedDate) = '5' then '5'
WHEN DATEPART(month,I.ResolvedDate) = '6' then '6'
WHEN DATEPART(month,I.ResolvedDate) = '7' then '7'
WHEN DATEPART(month,I.ResolvedDate) = '8' then '8'
WHEN DATEPART(month,I.ResolvedDate) = '9' then '9'
WHEN DATEPART(month,I.ResolvedDate) = '10' then '10'
WHEN DATEPART(month,I.ResolvedDate) = '11' then '11'
WHEN DATEPART(month,I.ResolvedDate) = '12' then '12'
ELSE 'x'
END AS Ranges
FROM
DWDataMart.dbo.IncidentDimvw I
INNER JOIN DWDAtaMart.dbo.EntityDimvw Entity
ON I.EntityDimKey = Entity.EntityDimKey
INNER JOIN DWDAtaMart.dbo.WorkItemDimvw WI
ON I.EntityDimKey = WI.EntityDimKey
LEFT OUTER JOIN
DWDataMart.dbo.IncidentStatusvw AS StatusEnum
ON StatusEnum.IncidentStatusId = I.Status_IncidentStatusId
LEFT OUTER JOIN
DWDataMart.dbo.DisplayStringDimvw StatusDS
ON StatusEnum.EnumTypeId=StatusDS.BaseManagedEntityId
AND StatusDS.LanguageCode = 'ENU'
Left Outer Join DWDataMart.dbo.IncidentTierQueuesvw TierQueueEnum
ON I.TierQueue_IncidentTierQueuesId = TierQueueEnum.IncidentTierQueuesId
Left Outer Join DWDataMart.dbo.DisplayStringDimvw TierQueueEnumDS
ON TierQueueEnum.EnumTypeId = TierQueueEnumDS.BaseManagedEntityId
AND TierQueueEnumDS.LanguageCode = 'ENU'
WHERE StatusDS.DisplayName IN ('Closed' , 'Resolved') and (TierQueueEnumDS.DisplayName IN (@Supportgroup)) and (DATEPART(year,I.ResolvedDate) = @Year)
) IncidentResolved
group by IncidentResolved.ranges) a
FULL JOIN
(SELECT IncidentResolved.ranges AS 'ResolvedMonth', count(*) AS 'IncidentResolved' FROM
(
SELECT CASE
WHEN DATEPART(month,I.ResolvedDate) = '1' then '1'
WHEN DATEPART(month,I.ResolvedDate) = '2' then '2'
WHEN DATEPART(month,I.ResolvedDate) = '3' then '3'
WHEN DATEPART(month,I.ResolvedDate) = '4' then '4'
WHEN DATEPART(month,I.ResolvedDate) = '5' then '5'
WHEN DATEPART(month,I.ResolvedDate) = '6' then '6'
WHEN DATEPART(month,I.ResolvedDate) = '7' then '7'
WHEN DATEPART(month,I.ResolvedDate) = '8' then '8'
WHEN DATEPART(month,I.ResolvedDate) = '9' then '9'
WHEN DATEPART(month,I.ResolvedDate) = '10' then '10'
WHEN DATEPART(month,I.ResolvedDate) = '11' then '11'
WHEN DATEPART(month,I.ResolvedDate) = '12' then '12'
ELSE 'x'
END AS Ranges
FROM
DWDataMart.dbo.IncidentDimvw I
INNER JOIN DWDAtaMart.dbo.EntityDimvw Entity
ON I.EntityDimKey = Entity.EntityDimKey
INNER JOIN DWDAtaMart.dbo.WorkItemDimvw WI
ON I.EntityDimKey = WI.EntityDimKey
LEFT OUTER JOIN
DWDataMart.dbo.IncidentStatusvw AS StatusEnum
ON StatusEnum.IncidentStatusId = I.Status_IncidentStatusId
LEFT OUTER JOIN
DWDataMart.dbo.DisplayStringDimvw StatusDS
ON StatusEnum.EnumTypeId=StatusDS.BaseManagedEntityId
AND StatusDS.LanguageCode = 'ENU'
Left Outer Join DWDataMart.dbo.IncidentTierQueuesvw TierQueueEnum
ON I.TierQueue_IncidentTierQueuesId = TierQueueEnum.IncidentTierQueuesId
Left Outer Join DWDataMart.dbo.DisplayStringDimvw TierQueueEnumDS
ON TierQueueEnum.EnumTypeId = TierQueueEnumDS.BaseManagedEntityId
AND TierQueueEnumDS.LanguageCode = 'ENU'
WHERE StatusDS.DisplayName IN ('Closed' , 'Resolved') and (TierQueueEnumDS.DisplayName IN (@Supportgroup)) and (DATEPART(year,I.ResolvedDate) = @Year) and ((DATEPART(day,I.CreatedDate)) = (DATEPART(day,I.ResolvedDate)))
) IncidentResolved
group by IncidentResolved.ranges) b
on a.ResolvedMonth = b.ResolvedMonth
Order by ABS(a.ResolvedMonth)
The output will be like below, when you using it in Excel.
Mary Christmas