UFN_STUDENTMARKINGCOLUMN_GETCLASSGRADES
Returns the student marking column grade information for a class.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STUDENTCOURSEID | uniqueidentifier | IN | |
@STATUSCODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_STUDENTMARKINGCOLUMN_GETCLASSGRADES
(
@STUDENTCOURSEID uniqueidentifier,
@STATUSCODE tinyint
)
returns @GRADESTABLE table (
ID uniqueidentifier null,
MCDISPLAYNAME nvarchar(10) not null,
TRANSLATIONTABLEID uniqueidentifier null,
VALUESALLOWEDCODE tinyint not null,
GRADETYPECODE tinyint not null,
NUMERICGRADE numeric(14, 2) null,
TRANSLATIONTABLEGRADEID uniqueidentifier null,
STUDENTCLASSMEETINGGROUPID uniqueidentifier not null,
COURSEGRADINGMARKINGCOLUMNID uniqueidentifier not null,
LOWESTSCOREALLOWED numeric(14,2) null,
HIGHESTSCOREALLOWED numeric(14,2) null,
MCSEQUENCE int not null,
GRADEISBLANK bit not null,
SECTION nvarchar(10) null
)
as begin
insert into @GRADESTABLE
select
ID,
MCDISPLAYNAME,
TRANSLATIONTABLEID,
VALUESALLOWEDCODE,
GRADETYPECODE,
NUMERICGRADE,
TRANSLATIONTABLEGRADEID,
STUDENTCLASSMEETINGGROUPID,
COURSEGRADINGMARKINGCOLUMNID,
LOWESTSCOREALLOWED,
HIGHESTSCOREALLOWED,
MCSEQUENCE,
case when NUMERICGRADE is null and TRANSLATIONTABLEGRADEID is null
then 1
else 0
end as GRADEISBLANK,
SECTION
from
(select
ID,
MCDISPLAYNAME,
TRANSLATIONTABLEID,
VALUESALLOWEDCODE,
GRADETYPECODE,
NUMERICGRADE,
TRANSLATIONTABLEGRADEID,
STUDENTCLASSMEETINGGROUPID,
COURSEGRADINGMARKINGCOLUMNID,
LOWESTSCOREALLOWED,
HIGHESTSCOREALLOWED,
MCSEQUENCE,
ROW_NUMBER() over (partition by COURSEGRADINGMARKINGCOLUMNID order by ID desc, STARTDATE desc) as ROW,
SECTION
from
(select
STUDENTMARKINGCOLUMNGRADE.ID,
MARKINGCOLUMN.DISPLAYNAME MCDISPLAYNAME,
COURSEGRADINGMARKINGCOLUMN.TRANSLATIONTABLEID,
(Select Case COURSEGRADINGMARKINGCOLUMN.GRADED
when 0 then 0
else (Case MarkingColumn.ALLTERMS
When 1 Then 1
else (Case When (
select ID
from dbo.MARKINGCOLUMNTERM
where TERM.TERMNAMECODEID = MARKINGCOLUMNTERM.TERMNAMECODEID
and MARKINGCOLUMNTERM.MARKINGCOLUMNID = MARKINGCOLUMN.ID
) is null
then 0
else 1
End)
End)
End) GRADED,
COURSEGRADINGMARKINGCOLUMN.VALUESALLOWEDCODE,
coalesce(STUDENTMARKINGCOLUMNGRADE.GRADETYPECODE,'') as GRADETYPECODE,
STUDENTMARKINGCOLUMNGRADE.NUMERICGRADEVALUE as NUMERICGRADE,
STUDENTMARKINGCOLUMNGRADE.TRANSLATIONTABLEGRADEID,
STUDENTCLASSMEETINGGROUP.ID as STUDENTCLASSMEETINGGROUPID,
COURSEGRADINGMARKINGCOLUMN.ID as COURSEGRADINGMARKINGCOLUMNID,
TRANSLATIONTABLE.LOWESTSCOREALLOWED,
TRANSLATIONTABLE.HIGHESTSCOREALLOWED,
MARKINGCOLUMN.SEQUENCE as MCSEQUENCE,
CLASSMEETINGGROUP.STARTDATE,
CLASS.SECTION
from dbo.STUDENTCLASSMEETINGGROUP
inner join dbo.CLASSMEETINGGROUP on STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
inner join dbo.CLASS on CLASSMEETINGGROUP.CLASSID = CLASS.ID
inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
inner join dbo.ACADEMICYEAR on ACADEMICYEAR.SCHOOLID = COURSE.SCHOOLID
inner join dbo.SESSION on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
inner join dbo.TERM on SESSION.ID = TERM.SESSIONID
and TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE
and TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
inner join dbo.V_COURSEGRADING as COURSEGRADING on COURSEGRADING.COURSEID = CLASS.COURSEID
and COURSEGRADING.STARTDATE <= CLASS.STARTDATE
and COURSEGRADING.ENDDATE >= CLASS.ENDDATE
inner join dbo.COURSEGRADINGMARKINGCOLUMN on COURSEGRADING.ID = COURSEGRADINGMARKINGCOLUMN.COURSEGRADINGID
left join dbo.TRANSLATIONTABLE on COURSEGRADINGMARKINGCOLUMN.TRANSLATIONTABLEID = TRANSLATIONTABLE.ID
inner join dbo.MARKINGCOLUMN on COURSEGRADINGMARKINGCOLUMN.MARKINGCOLUMNID = MARKINGCOLUMN.ID
left join dbo.STUDENTMARKINGCOLUMNGRADE on STUDENTCLASSMEETINGGROUP.ID = STUDENTMARKINGCOLUMNGRADE.STUDENTCLASSMEETINGGROUPID
and STUDENTMARKINGCOLUMNGRADE.COURSEGRADINGMARKINGCOLUMNID = COURSEGRADINGMARKINGCOLUMN.ID
where STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = @STUDENTCOURSEID
and STUDENTCLASSMEETINGGROUP.STATUSCODE = @STATUSCODE) g
where g.GRADED <> 0
) h
where h.ROW = 1
order by MCSEQUENCE
return
end