UFN_ACADEMICCATALOG_GETPARENT

Gets the parent catalog name for a given catalog level.

Return

Return Type
nvarchar(150)

Parameters

Parameter Parameter Type Mode Description
@LEVELCODE tinyint IN
@ID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_ACADEMICCATALOG_GETPARENT
(
    @LEVELCODE tinyint,
    @ID uniqueidentifier
)
returns nvarchar(150) with execute as caller
as
begin
    if @ID is null or @LEVELCODE not in (1,2,3,4,5,6,7)
        return '';

    declare @PARENT nvarchar(150);

    if @LEVELCODE = 1
        select
            @PARENT = INSTITUTION.NAME
        from
            dbo.ACADEMICCATALOGPROGRAM as PROGRAM
        inner join dbo.EDUCATIONALINSTITUTION as INSTITUTION on PROGRAM.EDUCATIONALINSTITUTIONID = INSTITUTION.ID
        where
            PROGRAM.ID = @ID;

    if @LEVELCODE = 2
        select
            @PARENT = PROGRAM.PROGRAM
        from
            dbo.ACADEMICCATALOGDEGREE as DEGREE
        inner join dbo.ACADEMICCATALOGPROGRAM as PROGRAM on DEGREE.ACADEMICCATALOGPROGRAMID = PROGRAM.ID
        where
            DEGREE.ID = @ID;

    if @LEVELCODE = 3
        select
            @PARENT = DEGREE.NAME
        from
            dbo.ACADEMICCATALOGCOLLEGE as COLLEGE
        inner join dbo.ACADEMICCATALOGDEGREE as DEGREE on COLLEGE.ACADEMICCATALOGDEGREEID = DEGREE.ID
        where
            COLLEGE.ID = @ID;

    if @LEVELCODE = 4
        select
            @PARENT = COLLEGE.NAME
        from
            dbo.ACADEMICCATALOGDIVISION as DIVISION
        inner join dbo.ACADEMICCATALOGCOLLEGE as COLLEGE on DIVISION.ACADEMICCATALOGCOLLEGEID = COLLEGE.ID
        where
            DIVISION.ID = @ID;

    if @LEVELCODE = 5 
        select
            @PARENT = coalesce(COLLEGE.NAME, DIVISION.NAME)
        from
            dbo.ACADEMICCATALOGDEPARTMENT as DEPARTMENT
        left join dbo.ACADEMICCATALOGCOLLEGE as COLLEGE on DEPARTMENT.ACADEMICCATALOGCOLLEGEID = COLLEGE.ID
        left join dbo.ACADEMICCATALOGDIVISION as DIVISION on DEPARTMENT.ACADEMICCATALOGDIVISIONID = DIVISION.ID
        where
            DEPARTMENT.ID = @ID;

    if @LEVELCODE = 6
        select
            @PARENT = DEPARTMENT.NAME
        from
            dbo.ACADEMICCATALOGSUBDEPARTMENT as SUBDEPARTMENT
        inner join dbo.ACADEMICCATALOGDEPARTMENT as DEPARTMENT on SUBDEPARTMENT.ACADEMICCATALOGDEPARTMENTID = DEPARTMENT.ID
        where
            SUBDEPARTMENT.ID = @ID;

    if @LEVELCODE = 7 
        select
            @PARENT = coalesce(DEPARTMENT.NAME, SUBDEPARTMENT.NAME)
        from
            dbo.ACADEMICCATALOGDEGREETYPE as DEGREETYPE
        left join dbo.ACADEMICCATALOGDEPARTMENT as DEPARTMENT on DEGREETYPE.ACADEMICCATALOGDEPARTMENTID = DEPARTMENT.ID
        left join dbo.ACADEMICCATALOGSUBDEPARTMENT as SUBDEPARTMENT on DEGREETYPE.ACADEMICCATALOGSUBDEPARTMENTID = SUBDEPARTMENT.ID
        where
            DEGREETYPE.ID = @ID;

    return @PARENT;
end