USP_ENTERREQUESTSBYSTUDENT_GETCOURSES
Returns the list of courses matching the criteria provided.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SESSIONID | uniqueidentifier | IN | |
@SCHOOLID | uniqueidentifier | IN | |
@GRADELEVELID | uniqueidentifier | IN | |
@DEPARTMENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_ENTERREQUESTSBYSTUDENT_GETCOURSES
(
@SESSIONID uniqueidentifier,
@SCHOOLID uniqueidentifier,
@GRADELEVELID uniqueidentifier,
@DEPARTMENTID uniqueidentifier
)
as
begin
declare @SESSION_STARTDATE date
declare @SESSION_ENDDATE date
select
@SESSION_STARTDATE = min(STARTDATE),
@SESSION_ENDDATE = max(ENDDATE)
from dbo.TERM
where TERM.SESSIONID = @SESSIONID
group by TERM.SESSIONID
select distinct
COURSE.ID,
COURSE.COURSEID,
COURSE.NAME,
case when count(COURSERESTRICTIONSTARTTERM.ID) over (partition by SCHOOLGRADELEVEL.ID, COURSERESTRICTION.ID) = 1
then TERM.ID
else null
end as STARTTERMID
from dbo.COURSE
inner join dbo.COURSEGRADELEVEL on COURSE.ID = COURSEGRADELEVEL.COURSEID
inner join dbo.SCHOOLGRADELEVEL on COURSEGRADELEVEL.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
inner join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSEGRADELEVEL.COURSEID = COURSERESTRICTION.COURSEID
inner join dbo.COURSERESTRICTIONSTARTTERM on COURSERESTRICTION.ID = COURSERESTRICTIONSTARTTERM.COURSERESTRICTIONID
inner join dbo.TERM on
COURSERESTRICTIONSTARTTERM.STARTDATE = TERM.STARTDATE and
COURSERESTRICTIONSTARTTERM.ENDDATE = TERM.ENDDATE and
@SESSIONID = TERM.SESSIONID
where (@GRADELEVELID is null or @GRADELEVELID = '00000000-0000-0000-0000-000000000000' or SCHOOLGRADELEVEL.GRADELEVELID = @GRADELEVELID) and
(@SCHOOLID is null or @SCHOOLID = '00000000-0000-0000-0000-000000000000' or SCHOOLGRADELEVEL.SCHOOLID = @SCHOOLID) and
COURSERESTRICTIONSTARTTERM.STARTDATE >= @SESSION_STARTDATE and
COURSERESTRICTIONSTARTTERM.ENDDATE <= @SESSION_ENDDATE and
(
@DEPARTMENTID is null or
@DEPARTMENTID = '00000000-0000-0000-0000-000000000000' or
COURSE.SELECTEDDEPARTMENTSCODE = 0 or
exists (
select 1
from dbo.COURSEACADEMICCATALOGDEPARTMENT
where COURSEACADEMICCATALOGDEPARTMENT.COURSEID = COURSE.ID and
ACADEMICCATALOGDEPARTMENTID = @DEPARTMENTID
)
)
order by COURSE.COURSEID, COURSE.NAME
end