USP_DATALIST_COURSE_STUDENT_SKILL
Returns all Student Skills used by a course.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@COURSEID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@ONLYCURRENT | bit | IN | Only display current skills |
@ACADEMICYEARNAMECODEID | uniqueidentifier | IN | Academic year |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_COURSE_STUDENT_SKILL
(
@COURSEID uniqueidentifier,
@ONLYCURRENT bit = 0,
@ACADEMICYEARNAMECODEID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime
if @ONLYCURRENT = 1
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
declare @MINSEQUENCE int;
declare @MAXSEQUENCE int;
select
@MINSEQUENCE = min(SEQUENCE),
@MAXSEQUENCE = max(SEQUENCE)
from
dbo.STUDENTSKILLCOURSE
where STUDENTSKILLCOURSE.COURSEID = @COURSEID
and (@CURRENTDATE is null
or (STUDENTSKILLCOURSE.STARTDATE <= @CURRENTDATE and (STUDENTSKILLCOURSE.ENDDATE is null or @CURRENTDATE <= STUDENTSKILLCOURSE.ENDDATE)))
select
STUDENTSKILLCOURSE.ID,
STUDENTSKILL.ID as STUDENTSKILLID,
STUDENTSKILL.NAME as SKILLNAME,
STUDENTSKILLRATINGGROUP.NAME as RATINGNAME,
STUDENTSKILLCATEGORYCODE.DESCRIPTION as CATEGORY,
(select ACADEMICYEARNAMECODE.DESCRIPTION from dbo.ACADEMICYEARNAMECODE
inner join dbo.ACADEMICYEAR on ACADEMICYEARNAMECODE.ID = ACADEMICYEAR.ACADEMICYEARNAMECODEID
where
(STUDENTSKILLCOURSE.STARTDATE = ACADEMICYEAR.STARTDATE) and
(ACADEMICYEAR.SCHOOLID = COURSE.SCHOOLID)) 'STARTYEAR',
(select ACADEMICYEARNAMECODE.DESCRIPTION from dbo.ACADEMICYEARNAMECODE
inner join dbo.ACADEMICYEAR on ACADEMICYEARNAMECODE.ID = ACADEMICYEAR.ACADEMICYEARNAMECODEID
where
(STUDENTSKILLCOURSE.ENDDATE = ACADEMICYEAR.ENDDATE) and
(ACADEMICYEAR.SCHOOLID = COURSE.SCHOOLID)) 'ENDYEAR',
(select stuff(( select '; ' + MARKINGCOLUMNDESCRIPTIONCODE.DESCRIPTION
from dbo.STUDENTSKILLCOURSEMARKINGCOLUMN
join dbo.MARKINGCOLUMNDESCRIPTIONCODE on MARKINGCOLUMNDESCRIPTIONCODE.ID = STUDENTSKILLCOURSEMARKINGCOLUMN.MARKINGCOLUMNDESCRIPTIONCODEID
where STUDENTSKILLCOURSEMARKINGCOLUMN.STUDENTSKILLCOURSEID = STUDENTSKILLCOURSE.ID
order by MARKINGCOLUMNDESCRIPTIONCODE.SEQUENCE
for xml path(''), type).value('.', 'nvarchar(max)'), 1, 2, '')) as STUDENTSKILLMARKINGCOLUMNS,
STUDENTSKILLCOURSE.SEQUENCE,
case when STUDENTSKILLCOURSE.SEQUENCE = @MINSEQUENCE then 1 else 0 end as ISMINSEQUENCE,
case when STUDENTSKILLCOURSE.SEQUENCE = @MAXSEQUENCE then 1 else 0 end as ISMAXSEQUENCE
from dbo.STUDENTSKILLCOURSE
join dbo.STUDENTSKILL on STUDENTSKILLCOURSE.STUDENTSKILLID = STUDENTSKILL.ID
left join dbo.STUDENTSKILLCATEGORYCODE on STUDENTSKILL.STUDENTSKILLCATEGORYCODEID = STUDENTSKILLCATEGORYCODE.ID
join dbo.STUDENTSKILLRATINGGROUP on STUDENTSKILL.STUDENTSKILLRATINGGROUPID = STUDENTSKILLRATINGGROUP.ID
join dbo.COURSE on STUDENTSKILLCOURSE.COURSEID = COURSE.ID
left join dbo.ACADEMICYEAR on (@ACADEMICYEARNAMECODEID is not null) and
(ACADEMICYEAR.STARTDATE >= STUDENTSKILLCOURSE.STARTDATE) and
((ACADEMICYEAR.ENDDATE <= STUDENTSKILLCOURSE.ENDDATE) or (STUDENTSKILLCOURSE.ENDDATE is null)) and
(ACADEMICYEAR.SCHOOLID = COURSE.SCHOOLID)
where STUDENTSKILLCOURSE.COURSEID = @COURSEID
and (@CURRENTDATE is null
or (STUDENTSKILLCOURSE.STARTDATE <= @CURRENTDATE and (STUDENTSKILLCOURSE.ENDDATE is null or @CURRENTDATE <= STUDENTSKILLCOURSE.ENDDATE)))
and ((@ACADEMICYEARNAMECODEID is null) or
(ACADEMICYEAR.ACADEMICYEARNAMECODEID = @ACADEMICYEARNAMECODEID))
order by STUDENTSKILLCOURSE.SEQUENCE ASC