EnVisageOnline/Main/Database/Scripts/20160405/02_create_VW_Holidays2Expen...

41 lines
1.2 KiB
Transact-SQL

USE EnVisage
GO
IF OBJECT_ID('VW_Holidays2Expenditures') IS NOT NULL
DROP VIEW dbo.VW_Holidays2Expenditures
GO
CREATE VIEW [dbo].[VW_Holidays2Expenditures] AS
(
-- Holidays for specified ECs
SELECT H.HolidayGroupId, EC.Id as ExpenditureCategoryId
FROM Holiday H
JOIN Holiday2ExpenditureCategory H2E ON (H2E.HolidayId = H.Id)
JOIN ExpenditureCategory EC on EC.Id = H2E.ExpenditureCategoryId
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 1) AND (H.WorkingDays = 0)
UNION
-- Holidays for all company resources
SELECT H.HolidayGroupId, EC.Id as ExpenditureCategoryId
FROM Holiday H
LEFT
JOIN ExpenditureCategory EC ON (1 = 1)
WHERE (H.CompanyImpact = 1) AND (H.WorkingDays = 0)
UNION
-- Holidays for all resources, except specified resources, teams and ECs
SELECT H.HolidayGroupId, EC.Id as ExpenditureCategoryId
FROM Holiday H
LEFT JOIN ExpenditureCategory EC ON (1 = 1)
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 0) AND (H.WorkingDays = 0)
)
EXCEPT
SELECT H.HolidayGroupId, H2E.ExpenditureCategoryId
FROM Holiday H
INNER
JOIN Holiday2ExpenditureCategory H2E ON (H2E.HolidayId = H.Id)
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 0) AND (H.WorkingDays = 0)