UFN_PROMOTESTUDENTS_STUDENTSTOPROMOTECOUNT

Returns the number of students that will be promoted

Return

Return Type
int

Parameters

Parameter Parameter Type Mode Description
@ACADEMICYEARID uniqueidentifier IN
@PROMOTIONSCHEDULEID uniqueidentifier IN
@STATUSES xml IN

Definition

Copy


        CREATE function dbo.UFN_PROMOTESTUDENTS_STUDENTSTOPROMOTECOUNT(
            @ACADEMICYEARID uniqueidentifier,
            @PROMOTIONSCHEDULEID uniqueidentifier,
            @STATUSES xml
        )
        returns integer
        with execute as caller
        as begin
            declare @STUDENTCOUNT as integer

            set @STUDENTCOUNT = (select COUNT(STUDENTPROGRESSION.ID)
            from dbo.STUDENTPROGRESSION
                inner join dbo.SCHOOLGRADELEVEL on STUDENTPROGRESSION.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
                inner join dbo.PROMOTIONSCHEDULEENTRY on STUDENTPROGRESSION.SCHOOLGRADELEVELID = PROMOTIONSCHEDULEENTRY.SCHOOLGRADELEVELID
                inner join dbo.PROMOTIONSCHEDULE on PROMOTIONSCHEDULEENTRY.PROMOTIONSCHEDULEID = PROMOTIONSCHEDULE.ID
                inner join dbo.EDUCATIONALHISTORY on STUDENTPROGRESSION.ENROLLMENTID = EDUCATIONALHISTORY.ID
                inner join (select T.c.value('(EDUCATIONALHISTORYSTATUSID)[1]','uniqueidentifier') as EDUCATIONALHISTORYSTATUSID
                            from @STATUSES.nodes('/STATUSES/ITEM') T(c)) STATUSES 
                                on EDUCATIONALHISTORY.EDUCATIONALHISTORYSTATUSID = STATUSES.EDUCATIONALHISTORYSTATUSID
            where dbo.UFN_ACADEMICYEAR_GET_FORSCHOOL_BYDATE(SCHOOLGRADELEVEL.SCHOOLID, STUDENTPROGRESSION.STARTDATE, STUDENTPROGRESSION.ENDDATE) = @ACADEMICYEARID
                and PROMOTIONSCHEDULEENTRY.PROMOTIONSCHEDULEID = @PROMOTIONSCHEDULEID
                and (PROMOTIONSCHEDULEENTRY.NEXTSCHOOLGRADELEVELID is not null or PROMOTIONSCHEDULE.NEXTSCHOOLGRADELEVELID is not null))

            return @STUDENTCOUNT
        end