USP_DATALIST_PROGRAMBYDATE

Lists all programs filtered by date.

Parameters

Parameter Parameter Type Mode Description
@DATES xml IN

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_PROGRAMBYDATE
            (
                @DATES xml
            )
            as
                set nocount on;    

                select 
                    PROGRAM.ID,
                    PROGRAM.NAME,
                    (
                        select 
                            EVENT.ID, 
                            EVENT.STARTDATE,
                            EVENT.NAME,
                            dbo.UFN_EVENT_GETAVAILABILITY(EVENT.ID) AVAILABILITY,
                            EVENT.STARTTIME, 
                            EVENT.ENDTIME,
                            EVENT.ENDDATE
                        from dbo.EVENT 
                        where EVENT.PROGRAMID = PROGRAM.ID and 
                        exists 
                        (
                            select 
                                STARTDATE 
                            from @DATES.nodes('/DATES/ITEM') T(c)
                            where 
                            EVENT.STARTDATE >= T.c.value('(STARTDATE)[1]','datetime')
                            and EVENT.STARTDATE <= T.c.value('(ENDDATE)[1]','datetime'
                        )
                        for xml raw('ITEM'),type,elements,root('EVENTS'),BINARY BASE64
                    ) as EVENTS
                from dbo.PROGRAM
                where
                    PROGRAM.ISACTIVE = 1 and
                    exists (select ID from dbo.PROGRAMPRICE where PROGRAMPRICE.PROGRAMID = PROGRAM.ID) and
                    exists
                    (
                        select
                            ID
                        from dbo.EVENT
                        where EVENT.PROGRAMID = PROGRAM.ID and
                        exists
                        (
                            select 
                                STARTDATE 
                            from @DATES.nodes('/DATES/ITEM') T(c)
                            where 
                            EVENT.STARTDATE >= T.c.value('(STARTDATE)[1]','datetime')
                            and EVENT.STARTDATE <= T.c.value('(ENDDATE)[1]','datetime'
                        )
                    )