ActualExpenseExceedsIncome.sql 876 B

123456789101112131415161718192021222324
  1. IF OBJECT_ID ('dbo.ActualExpenseExceedsIncome','V') IS NOT NULL DROP VIEW dbo.ActualExpenseExceedsIncome
  2. GO
  3. CREATE VIEW dbo.ActualExpenseExceedsIncome
  4. AS
  5. with cte
  6. as
  7. (
  8. SELECT c.CompanyID,
  9. c.ContractID,
  10. c.ContractCD,
  11. sum(case when b.[Type] = 'E' then b.CuryActualAmount else 0 end) as ActualExpense,
  12. sum(case when b.[Type] = 'I' then b.CuryActualAmount else 0 end) as ActualIncome
  13. FROM PMBudget b
  14. inner join Contract c on b.CompanyID = c.CompanyID and b.ProjectID = c.ContractID
  15. group by c.CompanyID, c.ContractID, c.ContractCD
  16. )
  17. SELECT c.CompanyID,
  18. c.ContractID,
  19. c.ContractCD,
  20. c.ActualExpense,
  21. c.ActualIncome,
  22. case when c.ActualExpense > c.ActualIncome then 1 else 0 end as ExpenseExceedsIncome,
  23. case when c.ActualExpense > c.ActualIncome then c.ActualIncome-c.ActualExpense else 0 end as ExpenseExceedsIncomeBy
  24. from cte c