98 lines
6.2 KiB
Transact-SQL
98 lines
6.2 KiB
Transact-SQL
USE [EnVisage]
|
||
GO
|
||
|
||
IF (EXISTS (SELECT * FROM sys.tables where name='Skill2Resource'))
|
||
begin
|
||
IF (NOT EXISTS(SELECT * FROM Skill2Resource))
|
||
begin
|
||
DROP TABLE Skill2Resource
|
||
end
|
||
end
|
||
GO
|
||
|
||
IF (NOT EXISTS (SELECT * FROM sys.tables where name='Skill2Resource'))
|
||
BEGIN
|
||
CREATE TABLE Skill2Resource(
|
||
[Id] [uniqueidentifier] NOT NULL,
|
||
[DataType] [smallint] NOT NULL,
|
||
[EffectiveDate] [datetime] NOT NULL,
|
||
[SkillId] [uniqueidentifier] NOT NULL,
|
||
[ResourceId] [uniqueidentifier] NOT NULL,
|
||
[Level] [smallint] NULL,
|
||
[Interested] [bit] NOT NULL,
|
||
[DateCreated] [datetime] NOT NULL,
|
||
CONSTRAINT [PK_Skill2Resource] PRIMARY KEY CLUSTERED
|
||
(
|
||
[Id] ASC
|
||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY],
|
||
CONSTRAINT [UK_Skill2Resource] UNIQUE NONCLUSTERED
|
||
(
|
||
[ResourceId] ASC,
|
||
[SkillId] ASC,
|
||
[DataType] ASC,
|
||
[EffectiveDate] ASC,
|
||
[DateCreated] ASC
|
||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||
) ON [PRIMARY]
|
||
|
||
ALTER TABLE Skill2Resource ADD CONSTRAINT [DF_Skill2Resource_Interested] DEFAULT ((0)) FOR [Interested]
|
||
|
||
ALTER TABLE Skill2Resource ADD CONSTRAINT [DF_Skill2Resource_DateCreated] DEFAULT (getdate()) FOR [DateCreated]
|
||
|
||
ALTER TABLE Skill2Resource WITH CHECK ADD CONSTRAINT [FK_Skill2Resource_ResourceId] FOREIGN KEY([ResourceId])
|
||
REFERENCES PeopleResource ([Id])
|
||
|
||
ALTER TABLE Skill2Resource CHECK CONSTRAINT [FK_Skill2Resource_ResourceId]
|
||
|
||
ALTER TABLE Skill2Resource WITH CHECK ADD CONSTRAINT [FK_Skill2Resource_SkillId] FOREIGN KEY([SkillId])
|
||
REFERENCES Skill ([Id])
|
||
|
||
ALTER TABLE Skill2Resource CHECK CONSTRAINT [FK_Skill2Resource_SkillId]
|
||
END
|
||
GO
|
||
|
||
if exists (select * from sys.views where name='VW_Skill2ResourceRecentExt')
|
||
begin
|
||
drop view VW_Skill2ResourceRecentExt
|
||
end
|
||
GO
|
||
|
||
if exists (select * from sys.views where name='VW_Skill2ResourceRecent')
|
||
begin
|
||
drop view VW_Skill2ResourceRecent
|
||
end
|
||
GO
|
||
|
||
if exists (select * from sys.views where name='VW_LastSkill2ResourceRecords')
|
||
begin
|
||
drop view VW_LastSkill2ResourceRecords
|
||
end
|
||
GO
|
||
|
||
CREATE VIEW VW_LastSkill2ResourceRecords AS
|
||
SELECT DataType, EffectiveDate, SkillId, ResourceId, MAX(DateCreated) AS DateCreated
|
||
FROM Skill2Resource
|
||
Group by DataType, EffectiveDate, SkillId, ResourceId
|
||
GO
|
||
|
||
CREATE VIEW VW_Skill2ResourceRecent AS
|
||
SELECT A.* FROM Skill2Resource A
|
||
INNER JOIN VW_LastSkill2ResourceRecords B ON
|
||
(B.DataType = A.DataType) AND (B.EffectiveDate = A.EffectiveDate) AND
|
||
(B.ResourceId = A.ResourceId) AND (B.SkillId = A.SkillId) AND
|
||
(B.DateCreated = A.DateCreated)
|
||
GO
|
||
|
||
CREATE VIEW VW_Skill2ResourceRecentExt AS
|
||
select A.*, ISNULL(D.Id, A.SkillId) AS SkillGroupId,
|
||
CAST((CASE WHEN (D.Id IS NULL) THEN 1 ELSE 0 END) AS bit) AS AssignedToGroup,
|
||
E.Id AS TeamId, E.CompanyId
|
||
from VW_Skill2ResourceRecent A
|
||
INNER JOIN Skill B ON (B.Id = A.SkillId)
|
||
INNER JOIN PeopleResource C ON (C.Id = A.ResourceId)
|
||
LEFT JOIN Skill D ON (D.Id = B.ParentId)
|
||
LEFT JOIN Team E ON (E.Id = C.TeamId)
|
||
GO
|
||
|
||
|