RankedActiveTasks.sql 719 B

1234567891011121314151617181920212223242526
  1. IF OBJECT_ID ('dbo.RankedActiveTasks','V') IS NOT NULL DROP VIEW dbo.RankedActiveTasks
  2. GO
  3. CREATE VIEW dbo.RankedActiveTasks
  4. as
  5. WITH RankedActiveTasks AS (
  6. SELECT
  7. CompanyID,
  8. ProjectID,
  9. TaskID,
  10. TaskCD,
  11. -- row number 1 = newest active task for that project
  12. ROW_NUMBER() OVER (
  13. PARTITION BY CompanyID, ProjectID
  14. ORDER BY CreatedDateTime DESC -- ← change if you need a different definition of “most recent”
  15. ) AS rn
  16. FROM dbo.PMTask
  17. WHERE
  18. Status = 'A'
  19. )
  20. SELECT
  21. CompanyID,
  22. ProjectID,
  23. TaskID,
  24. TaskCD
  25. FROM RankedActiveTasks
  26. WHERE rn = 1; -- keep only the newest active task per project