USP_BBNC_CONSTITEDUCATIONHISTORYDATA_FOR_GIVEN_CONSTITIDS

Parameters

Parameter Parameter Type Mode Description
@IDs nvarchar(max) IN
@IncludeUnaffiliated bit IN

Definition

Copy


    CREATE procedure [dbo].[USP_BBNC_CONSTITEDUCATIONHISTORYDATA_FOR_GIVEN_CONSTITIDS](@IDs nvarchar(max), @IncludeUnaffiliated bit = 0)
      as
          set NOCOUNT on;

          declare @USEACADEMICCATALOG bit;
              select top 1
                  @USEACADEMICCATALOG = USEACADEMICCATALOG
              from
                  dbo.EDUCATIONALCONFIGURATION;

              set @USEACADEMICCATALOG = coalesce(@USEACADEMICCATALOG,0);

            declare @IDS_TABLE table (
                SEQUENCEID int,
                CONSTITUENTID uniqueidentifier
            );

            insert into
                @IDS_TABLE (SEQUENCEID)
            select
                ID
            from
                dbo.fnMakeIDsTableFromString(@IDs, ',');

            update
                @IDS_TABLE
            set
                CONSTITUENTID = C.ID
            from
                @IDS_TABLE IDT
            inner join
                dbo.CONSTITUENT C on C.SEQUENCEID = IDT.SEQUENCEID;

        --Adding CTE to better handle exclusion of unaffiliated data.

        with EDUHISTORY_CTE as (
            select
                EH.ID as 'EduHistoryID',
                EDUCATIONALINSTITUTION.NAME,
                EH.STARTDATE,
                EH.DATELEFT,
                ACADEMICCATALOGDEGREE.NAME as 'Degree',            
                ACADEMICCATALOGPROGRAM.PROGRAM as 'Program',
                EH.CLASSOF
            from
                @IDS_TABLE IDT
            inner join
                dbo.EDUCATIONALHISTORY EH on EH.CONSTITUENTID = IDT.CONSTITUENTID
            inner join dbo.EDUCATIONALINSTITUTION on EH.EDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTION.ID
            left join dbo.ACADEMICCATALOGPROGRAM on EH.ACADEMICCATALOGPROGRAMID = ACADEMICCATALOGPROGRAM.ID
            left join dbo.ACADEMICCATALOGDEGREE on EH.ACADEMICCATALOGDEGREEID = ACADEMICCATALOGDEGREE.ID
            left join dbo.SCHOOL on EDUCATIONALINSTITUTION.ID = SCHOOL.ID
            where
                not SCHOOL.ID is null --A record in the school table indicates that this institution is affiliated

                and @USEACADEMICCATALOG = 1

            union all

            select
                EH.ID as 'EduHistoryID',
                EDUCATIONALINSTITUTION.NAME,
                EH.STARTDATE,
                EH.DATELEFT,  
                EDUCATIONALDEGREECODE.DESCRIPTION as 'DEGREE',            
                EDUCATIONALPROGRAMCODE.DESCRIPTION as 'PROGRAM',
                EH.CLASSOF
            from
                @IDS_TABLE IDT
            inner join
                dbo.EDUCATIONALHISTORY EH on EH.CONSTITUENTID = IDT.CONSTITUENTID
            inner join dbo.EDUCATIONALINSTITUTION on EH.EDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTION.ID
            left join dbo.EDUCATIONALPROGRAMCODE on EH.EDUCATIONALPROGRAMCODEID = EDUCATIONALPROGRAMCODE.ID
            left join dbo.EDUCATIONALDEGREECODE on EH.EDUCATIONALDEGREECODEID = EDUCATIONALDEGREECODE.ID
            where 
                @USEACADEMICCATALOG = 0

            union all

            select
                EH.ID as 'EduHistoryID',
                EDUCATIONALINSTITUTION.NAME,
                EH.STARTDATE,
                EH.DATELEFT,  
                EDUCATIONALDEGREECODE.DESCRIPTION as 'DEGREE',            
                EDUCATIONALPROGRAMCODE.DESCRIPTION as 'PROGRAM',
                EH.CLASSOF
            from
                @IDS_TABLE IDT
            inner join
                dbo.EDUCATIONALHISTORY EH on EH.CONSTITUENTID = IDT.CONSTITUENTID
            inner join dbo.EDUCATIONALINSTITUTION on EH.EDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTION.ID
            left join dbo.EDUCATIONALPROGRAMCODE on EH.EDUCATIONALPROGRAMCODEID = EDUCATIONALPROGRAMCODE.ID
            left join dbo.EDUCATIONALDEGREECODE on EH.EDUCATIONALDEGREECODEID = EDUCATIONALDEGREECODE.ID
            left join dbo.SCHOOL on EDUCATIONALINSTITUTION.ID = SCHOOL.ID
            where
                @USEACADEMICCATALOG = 1 and
                @IncludeUnaffiliated = 1 and
                SCHOOL.ID is null --No record in the school table indicates that this institution is *not* affiliated

        ) 

          select 
              EDUHISTORY_CTE.NAME,
              EDUCATIONALHISTORYTYPECODE.DESCRIPTION as SCHOOLTYPE,
              EDUCATIONALHISTORYSTATUSCODE.DESCRIPTION as STATUS,
          EDUHISTORY_CTE.DEGREE,
              EDUHISTORY_CTE.STARTDATE,
              EDUCATIONALHISTORY.ENDDATE,
              (select top 1 MAJORCODE.DESCRIPTION from dbo.EDUCATIONALMAJOR as MAJOR inner join dbo.EDUCATIONALMAJORCODE as MAJORCODE on MAJOR.EDUCATIONALMAJORCODEID = MAJORCODE.ID where MAJOR.EDUCATIONALHISTORYID = EDUCATIONALHISTORY.ID) as MAJOR,
              (select top 1 MAJORCODE.DESCRIPTION from dbo.EDUCATIONALMINOR as MINOR inner join dbo.EDUCATIONALMAJORCODE as MAJORCODE on MINOR.EDUCATIONALMAJORCODEID = MAJORCODE.ID where MINOR.EDUCATIONALHISTORYID = EDUCATIONALHISTORY.ID) as MINOR,
              EDUCATIONALHISTORY.GPA, 
          EDUHISTORY_CTE.CLASSOF,
          EDUCATIONALHISTORY.CONSTITUENCYSTATUSCODE,
              EDUCATIONALHISTORY.KNOWNNAME,
              EDUCATIONALHISTORY.FRATERNITY,
              case 
                when (EDUCATIONALHISTORY.ISPRIMARYRECORD = 1)
                then '-1'
                else '0'
              end as ISPRIMARYRECORD,
              CONSTITUENT.SEQUENCEID as CONSTITUENTSEQUENCEID,
          EDUCATIONALINSTITUTION.ISAFFILIATED,
          EDUCATIONALHISTORY.ID,
          EDUHISTORY_CTE.DATELEFT,
          EDUHISTORY_CTE.Program
          from
              dbo.CONSTITUENT
            inner join dbo.EDUCATIONALHISTORY on CONSTITUENT.ID = EDUCATIONALHISTORY.CONSTITUENTID
            inner join dbo.EDUCATIONALINSTITUTION on EDUCATIONALHISTORY.EDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTION.ID
            left join dbo.EDUCATIONALHISTORYTYPECODE on EDUCATIONALHISTORY.EDUCATIONALHISTORYTYPECODEID = EDUCATIONALHISTORYTYPECODE.ID
            left join dbo.EDUCATIONALHISTORYSTATUSCODE on EDUCATIONALHISTORY.EDUCATIONALHISTORYSTATUSCODEID = EDUCATIONALHISTORYSTATUSCODE.ID
            inner join EDUHISTORY_CTE on EDUCATIONALHISTORY.ID = EDUHISTORY_CTE.EduHistoryID
            inner join @IDS_TABLE IDs on IDs.CONSTITUENTID = CONSTITUENT.ID
        order by EDUCATIONALHISTORY.ISPRIMARYRECORD desc