NonWProjectBranchTracking.sql 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. DROP VIEW IF EXISTS NonWProjectBranchTracking
  2. GO
  3. Create View NonWProjectBranchTracking
  4. as
  5. SELECT
  6. ta.CompanyID,
  7. ta.WeekID,
  8. branch.AcctCD AS BranchCD,
  9. branch.AcctName AS BranchName,
  10. SUM(ta.TimeSpent) AS TotalTimeSpent,
  11. SUM(CASE
  12. WHEN SUBSTRING(c.ContractCD, 1, 1) = 'W'
  13. THEN ta.TimeSpent
  14. ELSE 0
  15. END) as WProjectTimeSpent,
  16. SUM(CASE
  17. WHEN SUBSTRING(c.ContractCD, 1, 1) != 'W'
  18. THEN ta.TimeSpent
  19. ELSE 0
  20. END) as NonWProjectTimeSpent,
  21. CASE
  22. WHEN SUM(ta.TimeSpent) = 0 THEN NULL
  23. ELSE CAST(SUM(CASE
  24. WHEN SUBSTRING(c.ContractCD, 1, 1) != 'W'
  25. THEN ta.TimeSpent
  26. ELSE 0
  27. END) AS DECIMAL(18, 4))
  28. / CAST(SUM(ta.TimeSpent) AS DECIMAL(18, 4))
  29. END AS NonWProjectPercent
  30. FROM PMTimeActivity ta
  31. join Contract c
  32. on ta.CompanyID = c.CompanyID and ta.ProjectID = c.ContractID
  33. JOIN EPTimeCard tc
  34. ON ta.CompanyID = tc.CompanyID AND ta.TimeCardCD = tc.TimeCardCD and tc.WeekID = ta.WeekID
  35. JOIN EPEmployee e
  36. ON tc.CompanyID = e.CompanyID AND tc.EmployeeID = e.BAccountID
  37. Join InventoryItem i
  38. on e.CompanyID = i.CompanyID and e.LabourItemID = i.inventoryID
  39. JOIN BAccount b
  40. ON e.CompanyID = b.CompanyID AND e.BAccountID = b.BAccountID
  41. JOIN BAccount branch
  42. ON b.CompanyID = branch.CompanyID AND branch.BAccountID = b.ParentBAccountID
  43. where i.InventoryCD in ('L109', 'L020', 'L101', 'L113', 'L117', 'L121', 'L123', 'L124', 'TECH', 'L021')
  44. and ta.EarningTypeID not in ('HOL', 'PTO')
  45. and ta.IsCorrected = 0
  46. GROUP BY
  47. ta.CompanyID,
  48. ta.WeekID,
  49. branch.AcctCD,
  50. branch.AcctName