Here is my sql code. I'm using a "union all" to merge Incidents and Service Requests into one table. This works fine when I don't use the "group by". When using "group by" to get the total number of tickets
per "Area" it is giving me duplicates. So it is returning a distinct list of "Area" from both select statements. Thank you.
SELECT IRAreaDN.DisplayName as 'Area' ,Count(IR.Id) as 'Total Requests' --,IRSupportGroupDN.DisplayName as 'Support Group' --, CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),IR.CreatedDate) AS DATE) as 'Created Date' --, CreatedByUser.UserName as 'Created By User ID' --, CreatedByUser.DisplayName as 'Created By User Name' FROM IncidentDimvw IR JOIN WorkItemDimvw WI ON WI.BaseManagedEntityId = IR.BaseManagedEntityId -- Lists -- Area LEFT OUTER JOIN DisplayStringDimvw IRAreaDN ON IRAreaDN.BaseManagedEntityId = IR.Custom_Area -- Classification LEFT OUTER JOIN IncidentClassificationvw IRClassificationEnum ON IRClassificationEnum.IncidentClassificationId = IR.Classification_IncidentClassificationId LEFT OUTER JOIN DisplayStringDimvw IRClassificationDN ON IRClassificationDN.BaseManagedEntityId = IRClassificationEnum.EnumTypeId -- Source LEFT OUTER JOIN IncidentSourcevw IRSourceEnum ON IRSourceEnum.IncidentSourceId = IR.Source_IncidentSourceId LEFT OUTER JOIN DisplayStringDimvw IRSourceDN ON IRSourceDN.BaseManagedEntityId = IRSourceEnum.EnumTypeId -- Status JOIN IncidentStatusvw IRStatusEnum ON IRStatusEnum.IncidentStatusId = IR.Status_IncidentStatusId JOIN DisplayStringDimvw IRStatusDN ON IRStatusDN.BaseManagedEntityId = IRStatusEnum.EnumTypeId -- Support Group LEFT OUTER JOIN IncidentTierQueuesvw IRSupportGroupEnum ON IRSupportGroupEnum.IncidentTierQueuesId = IR.TierQueue_IncidentTierQueuesId LEFT OUTER JOIN DisplayStringDimvw IRSupportGroupDN ON IRSupportGroupDN.BaseManagedEntityId = IRSupportGroupEnum.EnumTypeId --Impact LEFT OUTER JOIN IncidentImpactvw IImp ON IImp.IncidentImpactId = IR.Impact_IncidentImpactId --Urgency LEFT OUTER JOIN IncidentUrgencyvw IUrg ON IUrg.IncidentUrgencyId = IR.Urgency_IncidentUrgencyId -- Relationships -- Affected User LEFT OUTER JOIN WorkItemAffectedUserFactvw ON WorkItemAffectedUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemAffectedUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw AffectedUser ON AffectedUser.UserDimKey = WorkItemAffectedUserFactvw.WorkItemAffectedUser_UserDimKey -- Assigned User LEFT OUTER JOIN WorkItemAssignedToUserFactvw ON WorkItemAssignedToUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemAssignedToUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw AssignedUser ON AssignedUser.UserDimKey = WorkItemAssignedToUserFactvw.WorkItemAssignedToUser_UserDimKey -- Created By User LEFT OUTER JOIN WorkItemCreatedByUserFactvw ON WorkItemCreatedByUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemCreatedByUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw CreatedByUser ON CreatedByUser.UserDimKey = WorkItemCreatedByUserFactvw.WorkItemCreatedByUser_UserDimKey -- Resovled By User LEFT OUTER JOIN IncidentResolvedByUserFactvw ON IncidentResolvedByUserFactvw.IncidentDimKey = IR.IncidentDimKey AND (IncidentResolvedByUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw ResolvedByUser ON ResolvedByUser.UserDimKey = IncidentResolvedByUserFactvw.TroubleTicketResolvedByUser_UserDimKey WHERE IR.IsDeleted = '0' -- English and NULL lists only AND (IRAreaDN.LanguageCode = 'ENU' OR IRAreaDN.LanguageCode IS NULL) AND (IRClassificationDN.LanguageCode = 'ENU' OR IRClassificationDN.LanguageCode IS NULL) AND (IRSourceDN.LanguageCode = 'ENU' OR IRSourceDN.LanguageCode IS NULL) AND (IRStatusDN.LanguageCode = 'ENU' OR IRStatusDN.LanguageCode IS NULL) AND (IRSupportGroupDN.LanguageCode = 'ENU' OR IRSupportGroupDN.LanguageCode IS NULL) AND (IRSupportGroupDN.DisplayName = 'IT SERVICE DESK') --Parameters --AND (CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),IR.CreatedDate) AS DATE) >= @StartDate) --AND (CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),IR.CreatedDate) AS DATE) < DATEADD(dd,1,@EndDate)) Group BY IRAreaDN.DisplayName UNION ALL SELECT SRAreaDN.DisplayName as 'Area' , COUNT(SR.Id) as 'Total Requests' --, SRSupportGroupDN.DisplayName as 'Support Group' --, CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),SR.CreatedDate) AS DATE) as 'Created Date' --, CreatedByUser.UserName as 'Created By User ID' --, CreatedByUser.DisplayName as 'Created By User Name' FROM ServiceRequestDimvw SR JOIN WorkItemDimvw WI ON WI.BaseManagedEntityId = SR.BaseManagedEntityId -- Lists -- Area LEFT OUTER JOIN DisplayStringDimvw SRAreaDN ON SRAreaDN.BaseManagedEntityId = SR.Custom_Area --Classification LEFT OUTER JOIN DisplayStringDimvw SRClassificationDN ON SRClassificationDN.BaseManagedEntityId = SR.Custom_Classification -- Priority LEFT OUTER JOIN ServiceRequestPriorityvw SRPriorityEnum ON SRPriorityEnum.ServiceRequestPriorityId = SR.Priority_ServiceRequestPriorityId LEFT OUTER JOIN DisplayStringDimvw SRPriorityDN ON SRPriorityDN.BaseManagedEntityId = SRPriorityEnum.EnumTypeId -- Source LEFT OUTER JOIN ServiceRequestSourcevw SRSourceEnum ON SRSourceEnum.ServiceRequestSourceId = SR.Source_ServiceRequestSourceId LEFT OUTER JOIN DisplayStringDimvw SRSourceDN ON SRSourceDN.BaseManagedEntityId = SRSourceEnum.EnumTypeId -- Status JOIN ServiceRequestStatusvw SRStatusEnum ON SRStatusEnum.ServiceRequestStatusId = SR.Status_ServiceRequestStatusId JOIN DisplayStringDimvw SRStatusDN ON SRStatusDN.BaseManagedEntityId = SRStatusEnum.EnumTypeId -- Support Group LEFT OUTER JOIN ServiceRequestSupportGroupvw SRSupportGroupEnum ON SRSupportGroupEnum.ServiceRequestSupportGroupId = SR.SupportGroup_ServiceRequestSupportGroupId LEFT OUTER JOIN DisplayStringDimvw SRSupportGroupDN ON SRSupportGroupDN.BaseManagedEntityId = SRSupportGroupEnum.EnumTypeId -- Urgency LEFT OUTER JOIN ServiceRequestUrgencyvw SRUrg ON SRUrg.ServiceRequestUrgencyId = SR.Urgency_ServiceRequestUrgencyId -- Relationships -- Affected User LEFT OUTER JOIN WorkItemAffectedUserFactvw ON WorkItemAffectedUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemAffectedUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw AffectedUser ON AffectedUser.UserDimKey = WorkItemAffectedUserFactvw.WorkItemAffectedUser_UserDimKey -- Assigned User LEFT OUTER JOIN WorkItemAssignedToUserFactvw ON WorkItemAssignedToUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemAssignedToUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw AssignedUser ON AssignedUser.UserDimKey = WorkItemAssignedToUserFactvw.WorkItemAssignedToUser_UserDimKey -- Created By User LEFT OUTER JOIN WorkItemCreatedByUserFactvw ON WorkItemCreatedByUserFactvw.WorkItemDimKey = WI.WorkItemDimKey AND (WorkItemCreatedByUserFactvw.DeletedDate IS NULL) LEFT OUTER JOIN UserDimvw CreatedByUser ON CreatedByUser.UserDimKey = WorkItemCreatedByUserFactvw.WorkItemCreatedByUser_UserDimKey WHERE SR.IsDeleted = '0' -- English and NULL lists only AND (SRAreaDN.LanguageCode = 'ENU' OR SRAreaDN.LanguageCode IS NULL) AND (SRPriorityDN.LanguageCode = 'ENU' OR SRPriorityDN.LanguageCode IS NULL) AND (SRSourceDN.LanguageCode = 'ENU' OR SRSourceDN.LanguageCode IS NULL) AND (SRStatusDN.LanguageCode = 'ENU' OR SRStatusDN.LanguageCode IS NULL) AND (SRSupportGroupDN.LanguageCode = 'ENU' OR SRSupportGroupDN.LanguageCode IS NULL) AND (SRSupportGroupDN.DisplayName = 'IT SERVICE DESK') -- Parameters --AND (CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),SR.CreatedDate) AS DATE) >= @StartDate) --AND (CAST(DATEADD(MI,DATEDIFF(mi,GETUTCDATE(),GETDATE()),SR.CreatedDate) AS DATE) < DATEADD(dd,1,@EndDate)) GROUP BY SRAreaDN.DisplayName Order by Area