UFN_PERFORMANCECATEGORYLEVELSKILLCATEGORY_HASALLRATINGS
Returns true for a Performance Category Level Skill Category if all ratings tables for the skill category have ratings setup.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PERFORMANCECATEGORYLEVELSKILLCATEGORYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PERFORMANCECATEGORYLEVELSKILLCATEGORY_HASALLRATINGS(
@PERFORMANCECATEGORYLEVELSKILLCATEGORYID uniqueidentifier
)
returns bit
with execute as caller
as begin
declare @SKILLCATEGORYRATING table (
PERFORMANCECATEGORYLEVELSKILLCATEGORYID uniqueidentifier, -- ID
SKILLCATEGORYID uniqueidentifier, -- skill category the level has defined
SKILLRATINGGROUPID uniqueidentifier -- all rating groups that are or need to defined
)
-- determine ratings table that need to be setup for skill category
insert into @SKILLCATEGORYRATING
select
PERFORMANCECATEGORYLEVELSKILLCATEGORY.ID
,PERFORMANCECATEGORYLEVELSKILLCATEGORY.STUDENTSKILLCATEGORYCODEID
,STUDENTSKILLRATINGGROUP.ID
from
dbo.PERFORMANCECATEGORYLEVELSKILLCATEGORY
join dbo.STUDENTSKILLRATINGGROUP on STUDENTSKILLRATINGGROUP.ID in (
select distinct STUDENTSKILLRATINGGROUPID
from dbo.STUDENTSKILL
where (STUDENTSKILL.STUDENTSKILLCATEGORYCODEID = PERFORMANCECATEGORYLEVELSKILLCATEGORY.STUDENTSKILLCATEGORYCODEID)
or (PERFORMANCECATEGORYLEVELSKILLCATEGORY.STUDENTSKILLCATEGORYCODEID is null and STUDENTSKILL.STUDENTSKILLCATEGORYCODEID is null))
left join dbo.STUDENTSKILLCATEGORYCODE on STUDENTSKILLCATEGORYCODE.ID = PERFORMANCECATEGORYLEVELSKILLCATEGORY.STUDENTSKILLCATEGORYCODEID
where
PERFORMANCECATEGORYLEVELSKILLCATEGORY.ID = @PERFORMANCECATEGORYLEVELSKILLCATEGORYID
order by STUDENTSKILLRATINGGROUP.NAME
return
-- return false if missing any necessary ratings are not defined
case when exists(
select PERFORMANCECATEGORYLEVELSKILLCATEGORY.ID
from @SKILLCATEGORYRATING scr
join dbo.PERFORMANCECATEGORYLEVELSKILLCATEGORY on PERFORMANCECATEGORYLEVELSKILLCATEGORY.ID = scr.PERFORMANCECATEGORYLEVELSKILLCATEGORYID
join dbo.STUDENTSKILLRATINGGROUP on STUDENTSKILLRATINGGROUP.ID = scr.SKILLRATINGGROUPID
left join dbo.PERFORMANCECATEGORYLEVELSKILLCATEGORYRATING on PERFORMANCECATEGORYLEVELSKILLCATEGORYRATING.PERFORMANCECATEGORYLEVELSKILLCATEGORYID = PERFORMANCECATEGORYLEVELSKILLCATEGORY.ID
and PERFORMANCECATEGORYLEVELSKILLCATEGORYRATING.STUDENTSKILLRATINGGROUPID = scr.SKILLRATINGGROUPID
where PERFORMANCECATEGORYLEVELSKILLCATEGORYRATING.ID is null)
then 0
else -1
end
end