Quantcast
Channel: SQL Server Reporting Services, Power View forum
Viewing all articles
Browse latest Browse all 10045

Using a GROUP BY with a UNION ALL

$
0
0

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




Viewing all articles
Browse latest Browse all 10045

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>