UFN_GETWITHDRAWNDETAILS
Returns details about a withdrawn class if any
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CLASSID | uniqueidentifier | IN | |
@STUDENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GETWITHDRAWNDETAILS
(
@CLASSID uniqueidentifier,
@STUDENTID uniqueidentifier
)
returns @RESULTS table
(
WITHDRAWN_TERMID uniqueidentifier,
WITHDRAWN_TERMNAME nvarchar(100),
WITHDRAWN_DATE date,
WITHDRAWN_STATUS bit
)
as
begin
WITH WithdrawnTerm(TERMID,STARTDATE,ENDDATE,DESCRIPTION)
as
(
select
TM.ID,
T.STARTDATE,
T.ENDDATE,
TMN.DESCRIPTION
from
(select
MIN(CLASSMEETINGGROUP.STARTDATE) STARTDATE,
MIN(CLASSMEETINGGROUP.ENDDATE) ENDDATE
from dbo.CLASS
inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
inner join dbo.ACADEMICYEAR on COURSE.SCHOOLID = ACADEMICYEAR.SCHOOLID
and ACADEMICYEAR.STARTDATE <= CLASS.STARTDATE
and ACADEMICYEAR.ENDDATE >= CLASS.ENDDATE
inner join dbo.ACADEMICYEARNAMECODE on ACADEMICYEAR.ACADEMICYEARNAMECODEID = ACADEMICYEARNAMECODE.ID
inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
inner join dbo.STUDENTCLASSMEETINGGROUP on CLASSMEETINGGROUP.ID = STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID
and dbo.STUDENTCLASSMEETINGGROUP.STATUSCODE = 2
inner join dbo.STUDENTCOURSE on STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = STUDENTCOURSE.ID
inner join dbo.CONSTITUENT on STUDENTCOURSE.STUDENTID = CONSTITUENT.ID
inner join dbo.SESSION on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
inner join dbo.TERM on SESSION.ID = TERM.SESSIONID
and CLASSMEETINGGROUP.STARTDATE >= TERM.STARTDATE
and CLASSMEETINGGROUP.ENDDATE <= TERM.ENDDATE
inner join dbo.TERMNAMECODE on TERM.TERMNAMECODEID = TERMNAMECODE.ID
where CLASS.ID = @CLASSID
and STUDENTCOURSE.STUDENTID = @STUDENTID) t
inner join TERM TM on TM.STARTDATE = t.STARTDATE and TM.ENDDATE = t.ENDDATE
inner join TERMNAMECODE TMN ON TMN.ID = TM.TERMNAMECODEID
)
insert into @RESULTS
select
WithdrawnTerm.TERMID,
WithdrawnTerm.DESCRIPTION,
STUDENTCLASSMEETINGGROUP.STATUSDATE WITHDRAWALDATE,
(CASE STUDENTCLASSMEETINGGROUP.STATUSCODE WHEN 2 THEN 1 END) WITHDRAWNSTATUS
from dbo.CLASS
inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
inner join dbo.STUDENTCLASSMEETINGGROUP on CLASSMEETINGGROUP.ID = STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID
and dbo.STUDENTCLASSMEETINGGROUP.STATUSCODE = 2
inner join dbo.STUDENTCOURSE on STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = STUDENTCOURSE.ID
inner join dbo.CONSTITUENT on STUDENTCOURSE.STUDENTID = CONSTITUENT.ID
inner join dbo.TERM on (CLASSMEETINGGROUP.STARTDATE >= TERM.STARTDATE
and CLASSMEETINGGROUP.ENDDATE <= TERM.ENDDATE)
inner join WithdrawnTerm on WithdrawnTerm.TERMID = TERM.ID
where CLASS.ID = @CLASSID
and STUDENTCOURSE.STUDENTID = @STUDENTID;
return
end