They are not different values. Active is just a subset of Total, thus creating a duplicate row in the resultset for Status = 'Active' record.This would do the same thing and probably faster, since there is only one SELECT with multiple joins.SELECT SUM(CASE WHEN OrderDate >= dateadd(day, - 30, getdate()) THEN 1 ELSE 0 END) AS OrderCount, exigo_data_sync.Customer.CustomerStatus, exigo_data_sync.Customer.State, dbo.Rank.RankCodeFROM exigo_data_sync.OrdersINTO #TempINNER JOIN exigo_data_sync.Customer ON exigo_data_sync.Orders.CustomerID = exigo_data_sync.Customer.CustomerIDINNER JOIN dbo.Rank ON exigo_data_sync.Customer.RankID = dbo.Rank.RankIDWHERE exigo_data_sync.Customer.CustomerType = 'Distributor'GROUP BY exigo_data_sync.Customer.CustomerStatus, exigo_data_sync.Customer.State, dbo.Rank.RankCodeSELECT OrderCount, CustomerStatus, State, RankCodeFROM ( SELECT OrderCount, CustomerStatus, State, RankCode FROM #Temp UNION ALL SELECT SUM(OrderCount), 'Active', State, RankCode FROM #Temp WHERE CustomerStatus = 'Active' GROUP BY State, RankCode )ORDER BY StateDROP TABLE #Temp
Peter LarssonHelsingborg, Sweden