48 lines
1.8 KiB
Transact-SQL
48 lines
1.8 KiB
Transact-SQL
Use [EnVisage]
|
|
|
|
IF EXISTS (select 1 from sys.views where name like 'VW_Holidays2Resources')
|
|
BEGIN
|
|
DROP VIEW VW_Holidays2Resources
|
|
END
|
|
GO
|
|
|
|
CREATE VIEW [dbo].[VW_Holidays2Resources] AS
|
|
-- Holidays for specified resources, Teams and ECs
|
|
(SELECT H.HolidayGroupId, PR.Id AS ResourceId, PR.WorkWeekId, PR.ExpenditureCategoryId, PR.TeamId
|
|
FROM Holiday H
|
|
LEFT JOIN Holiday2Team H2T ON (H2T.HolidayId = H.Id)
|
|
LEFT JOIN Holiday2ExpenditureCategory H2E ON (H2E.HolidayId = H.Id)
|
|
LEFT JOIN Holiday2PeopleResource H2P ON (H2P.HolidayId = H.Id)
|
|
LEFT JOIN PeopleResource PR ON
|
|
(PR.TeamId = H2T.TeamId) OR (PR.ExpenditureCategoryId = H2E.ExpenditureCategoryId) OR (H2P.ResourceId = PR.Id)
|
|
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 1) AND (H.WorkingDays = 0)
|
|
|
|
UNION
|
|
|
|
-- Holidays for all company resources
|
|
SELECT H.HolidayGroupId, PR.Id AS ResourceId, PR.WorkWeekId, PR.ExpenditureCategoryId, PR.TeamId
|
|
FROM Holiday H
|
|
LEFT JOIN PeopleResource PR 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, PR.Id AS ResourceId, PR.WorkWeekId, PR.ExpenditureCategoryId, PR.TeamId
|
|
FROM Holiday H
|
|
LEFT JOIN PeopleResource PR ON (1 = 1)
|
|
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 0) AND (H.WorkingDays = 0)
|
|
)
|
|
|
|
EXCEPT
|
|
|
|
SELECT H.HolidayGroupId, PR.Id AS ResourceId, PR.WorkWeekId, PR.ExpenditureCategoryId, PR.TeamId
|
|
FROM Holiday H
|
|
LEFT JOIN Holiday2Team H2T ON (H2T.HolidayId = H.Id)
|
|
LEFT JOIN Holiday2ExpenditureCategory H2E ON (H2E.HolidayId = H.Id)
|
|
LEFT JOIN Holiday2PeopleResource H2P ON (H2P.HolidayId = H.Id)
|
|
LEFT JOIN PeopleResource PR ON
|
|
(PR.TeamId = H2T.TeamId) OR (PR.ExpenditureCategoryId = H2E.ExpenditureCategoryId) OR (H2P.ResourceId = PR.Id)
|
|
WHERE (H.CompanyImpact = 0) AND (H.IsInclude = 0) AND (H.WorkingDays = 0)
|
|
GO
|