ActualRevenue.sql 1008 B

123456789101112131415161718192021222324252627282930
  1. IF OBJECT_ID ('dbo.ActualRevenue','V') IS NOT NULL DROP VIEW dbo.ActualRevenue
  2. GO
  3. CREATE VIEW dbo.ActualRevenue
  4. AS
  5. SELECT ROW_NUMBER() OVER (
  6. ORDER BY
  7. p.CompanyID,
  8. p.ProjectID
  9. ) AS RowKey,
  10. p.CompanyID,
  11. p.ProjectID,
  12. c.ContractCD,
  13. ABS(SUM(CASE
  14. WHEN p.OffsetAccountGroupID = 24 AND p.AccountGroupID = 25 THEN p.Amount * -1
  15. WHEN p.OffsetAccountGroupID = 25 AND p.AccountGroupID = 24 THEN p.Amount
  16. ELSE p.Amount
  17. END)) as [ActulRevenueCompute],
  18. SUM(p.Amount) AS [Amount],
  19. SUM(p.TranCuryAmount) AS [TranCuryAmount],
  20. SUM(p.ProjectCuryAmount) AS [ProjectCuryAmount],
  21. SUM(p.ProjectCuryInvoicedAmount) AS [ProjectCuryInvoicedAmount],
  22. SUM(p.InvoicedAmount) AS [InvoicedAmount]
  23. FROM PMTran p
  24. join Contract c on c.CompanyID = p.CompanyID and c.ContractID = p.ProjectID
  25. WHERE p.AccountGroupID IN (24)
  26. OR p.OffsetAccountGroupID IN (24)
  27. GROUP BY
  28. p.CompanyID,
  29. p.ProjectID,
  30. c.ContractCD