UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS

Returns goals broken down by quarter for a designation level goal.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@DESIGNATIONLEVELGOALID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@DESIGNATIONLEVELGOALID uniqueidentifier)
            returns @QUARTERGOALS table
                (
                DESIGNATIONLEVELGOALID uniqueidentifier NOT NULL,
                QUARTER tinyint NOT NULL,
                YEARNAME int NOT NULL,
                STARTDATE datetime NOT NULL,
                TOTALQUARTERS int NOT NULL,
                SEQUENCE decimal NOT NULL,
                DESIGNATIONLEVELID uniqueidentifier NOT NULL
                )

            as
            begin
                declare @ENDDATE datetime;
                declare @STARTDATE datetime;
                declare @NUMPARTS int;
                declare @CURRENTPART decimal;

                select @STARTDATE = DLG.STARTDATE,
                        @ENDDATE = DLG.ENDDATE,
                        @NUMPARTS = datediff(qq, DLG.STARTDATE, DLG.ENDDATE) + 1,
                        @CURRENTPART = 1
                from dbo.DESIGNATIONLEVELGOAL DLG
                where DLG.ID = @DESIGNATIONLEVELGOALID;

                WHILE datediff(qq, @STARTDATE, @ENDDATE) > -1
                    begin                    
                    INSERT INTO @QUARTERGOALS
                    select ID, 
                            datepart(qq, @STARTDATE), 
                            datepart(yyyy, @STARTDATE),
                            @STARTDATE,
                            @NUMPARTS,
                            @CURRENTPART,
                            DESIGNATIONLEVELID
                    from dbo.DESIGNATIONLEVELGOAL 
                    where ID = @DESIGNATIONLEVELGOALID;

                    set @STARTDATE = dateadd(qq, 1, @STARTDATE);            
                    set @CURRENTPART = @CURRENTPART + 1;
                    CONTINUE
                    end

                return
            end