Advertisement
shady_obeyd

16.FavouriteCategories

Jun 21st, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.96 KB | None | 0 0
  1. WITH CTE_TotalReportsPerDepartments ([Department Name], ReportsPerDepartment) AS (
  2. SELECT d.[Name] AS [Department Name],
  3.        COUNT(r.Id) AS ReportsPerDepartmentsCount
  4. FROM Departments AS d
  5. JOIN Categories AS c
  6. ON c.DepartmentId = d.Id
  7. JOIN Reports AS r
  8. ON r.CategoryId = c.Id
  9. JOIN Users AS u
  10. ON u.Id = r.UserId
  11. GROUP BY d.[Name])
  12.  
  13. SELECT e.[Department Name],
  14.        e.[Category Name],
  15.        CAST((CAST(e.ReportsPerCategoryCount AS DECIMAL) / dtr.ReportsPerDepartment) * 100 AS INT) AS [Percentage]
  16. FROM (
  17.     SELECT d.[Name] AS [Department Name],
  18.            c.[Name] AS [Category Name],
  19.            COUNT(r.Id) AS ReportsPerCategoryCount
  20.     FROM Departments AS d
  21.     JOIN Categories AS c
  22.     ON c.DepartmentId = d.Id
  23.     JOIN Reports AS r
  24.     ON r.CategoryId = c.Id
  25.     JOIN Users AS u
  26.     ON u.Id = r.UserId
  27.     GROUP BY c.[Name], d.[Name]) AS e
  28. JOIN CTE_TotalReportsPerDepartments AS dtr
  29. ON dtr.[Department Name] = e.[Department Name]
  30. ORDER BY [Department Name], [Category Name], [Percentage]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement