USP_ACADEMICCATALOG_GETLIST_WITHPARAMETERS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NAME | nvarchar(150) | IN | |
@LOOKUPID | nvarchar(50) | IN | |
@TYPECODE | tinyint | IN | |
@DATEFROM | UDT_FUZZYDATE | IN |
Definition
Copy
CREATE procedure dbo.USP_ACADEMICCATALOG_GETLIST_WITHPARAMETERS
(
@NAME nvarchar(150) = null,
@LOOKUPID nvarchar(50) = null,
@TYPECODE tinyint = null,
@DATEFROM as dbo.UDT_FUZZYDATE = null
)
as
begin
set @NAME = dbo.UFN_SEARCHCRITERIA_GETLIKEPARAMETERVALUE(@NAME,0,'\');
set @LOOKUPID = dbo.UFN_SEARCHCRITERIA_GETLIKEPARAMETERVALUE(@LOOKUPID,0,'\');
declare @UNFILTEREDRESULTS as table
(
ID uniqueidentifier,
PROGRAMCODE tinyint,
NAME nvarchar(150),
LOOKUPID nvarchar(50),
TYPECODE int,
DATEFROM dbo.UDT_FUZZYDATE,
HASHISTORY bit,
PARENTID uniqueidentifier
);
insert into @UNFILTEREDRESULTS
select
INSTITUTION.ID,
null,
INSTITUTION.NAME,
null,
0, --Institution
'00000000',
cast(0 as bit),
null
from
dbo.EDUCATIONALINSTITUTION as INSTITUTION
where
INSTITUTION.ISAFFILIATED = 1
insert into @UNFILTEREDRESULTS
select
PROGRAM.ID,
PROGRAM.PROGRAMCODE,
PROGRAM.PROGRAM,
null,
1, --Program
'00000000',
cast(0 as bit),
PROGRAM.EDUCATIONALINSTITUTIONID
from
dbo.ACADEMICCATALOGPROGRAM as PROGRAM
insert into @UNFILTEREDRESULTS
select
DEGREE.ID,
null,
DEGREE.NAME,
DEGREE.USERID,
2, --Degree
DEGREE.DATEFROM,
case when exists (select ID from dbo.ACADEMICCATALOGDEGREE where CURRENTID = DEGREE.ID) then cast(1 as bit) else cast(0 as bit) end,
DEGREE.ACADEMICCATALOGPROGRAMID
from
dbo.ACADEMICCATALOGDEGREE as DEGREE
where
DEGREE.ISHISTORICAL = 0
insert into @UNFILTEREDRESULTS
select
COLLEGE.ID,
null,
COLLEGE.NAME,
COLLEGE.USERID,
3, --College
COLLEGE.DATEFROM,
case when exists (select ID from dbo.ACADEMICCATALOGCOLLEGE where CURRENTID = COLLEGE.ID) then cast(1 as bit) else cast(0 as bit) end,
COLLEGE.ACADEMICCATALOGDEGREEID
from
dbo.ACADEMICCATALOGCOLLEGE as COLLEGE
where
COLLEGE.ISHISTORICAL = 0
insert into @UNFILTEREDRESULTS
select
DIVISION.ID,
null,
DIVISION.NAME,
DIVISION.USERID,
4, --Division
DIVISION.DATEFROM,
case when exists (select ID from dbo.ACADEMICCATALOGDIVISION where CURRENTID = DIVISION.ID) then cast(1 as bit) else cast(0 as bit) end,
DIVISION.ACADEMICCATALOGCOLLEGEID
from
dbo.ACADEMICCATALOGDIVISION as DIVISION
where
DIVISION.ISHISTORICAL = 0
insert into @UNFILTEREDRESULTS
select
DEPARTMENT.ID,
null,
DEPARTMENT.NAME,
DEPARTMENT.USERID,
5, --Department
DEPARTMENT.DATEFROM,
case when exists (select ID from dbo.ACADEMICCATALOGDEPARTMENT where CURRENTID = DEPARTMENT.ID) then cast(1 as bit) else cast(0 as bit) end,
coalesce(DEPARTMENT.ACADEMICCATALOGCOLLEGEID, DEPARTMENT.ACADEMICCATALOGDIVISIONID)
from
dbo.ACADEMICCATALOGDEPARTMENT as DEPARTMENT
where
DEPARTMENT.ISHISTORICAL = 0
insert into @UNFILTEREDRESULTS
select
SUBDEPARTMENT.ID,
null,
SUBDEPARTMENT.NAME,
SUBDEPARTMENT.USERID,
6, --Sub department
SUBDEPARTMENT.DATEFROM,
case when exists (select ID from dbo.ACADEMICCATALOGSUBDEPARTMENT where CURRENTID = SUBDEPARTMENT.ID) then cast(1 as bit) else cast(0 as bit) end,
SUBDEPARTMENT.ACADEMICCATALOGDEPARTMENTID
from
dbo.ACADEMICCATALOGSUBDEPARTMENT as SUBDEPARTMENT
where
SUBDEPARTMENT.ISHISTORICAL = 0
insert into @UNFILTEREDRESULTS
select
DEGREETYPE.ID,
null,
dbo.UFN_ACADEMICCATALOGDEGREETYPECODE_GETDESCRIPTION(ACADEMICCATALOGDEGREETYPECODEID),
DEGREETYPE.USERID,
7, --Degree type
'00000000',
cast(0 as bit),
coalesce(DEGREETYPE.ACADEMICCATALOGDEPARTMENTID, DEGREETYPE.ACADEMICCATALOGSUBDEPARTMENTID)
from
dbo.ACADEMICCATALOGDEGREETYPE as DEGREETYPE;
with FILTEREDRESULTS_WITHANCESTORS (ID, PROGRAMCODE, NAME, LOOKUPID, TYPECODE, DATEFROM, HASHISTORY, PARENTID)
as
(
select
*
from
@UNFILTEREDRESULTS
where
(@NAME is null or NAME like @NAME)
and
(@LOOKUPID is null or LOOKUPID like @LOOKUPID)
and
(@TYPECODE is null or TYPECODE = @TYPECODE)
and
(@DATEFROM is null or DATEFROM = @DATEFROM)
union all
select
PARENTS.*
from
FILTEREDRESULTS_WITHANCESTORS
inner join
@UNFILTEREDRESULTS as PARENTS on PARENTS.ID = FILTEREDRESULTS_WITHANCESTORS.PARENTID
),
FILTEREDRESULTS_WITHDESCENDANTS (ID, PROGRAMCODE, NAME, LOOKUPID, TYPECODE, DATEFROM, HASHISTORY, PARENTID)
as (
select
*
from
@UNFILTEREDRESULTS
where
(@NAME is null or NAME like @NAME)
and
(@LOOKUPID is null or LOOKUPID like @LOOKUPID)
and
(@TYPECODE is null or TYPECODE = @TYPECODE)
and
(@DATEFROM is null or DATEFROM = @DATEFROM)
union all
select
CHILDREN.*
from
FILTEREDRESULTS_WITHDESCENDANTS
inner join
@UNFILTEREDRESULTS as CHILDREN on CHILDREN.PARENTID = FILTEREDRESULTS_WITHDESCENDANTS.ID
),
FILTEREDRESULTS (ID, PROGRAMCODE, NAME, LOOKUPID, TYPECODE, DATEFROM, HASHISTORY, PARENTID)
as (
select
*
from
FILTEREDRESULTS_WITHANCESTORS
union all
select
*
from
FILTEREDRESULTS_WITHDESCENDANTS
)
select distinct
ID,
PROGRAMCODE,
NAME,
LOOKUPID,
TYPECODE,
convert( nvarchar(8), DATEFROM , 112),
HASHISTORY,
PARENTID
from
FILTEREDRESULTS
order by
TYPECODE, NAME;
end