USP_DATALIST_COMMUNITYMEMBERPAGEVISITSUMMARY

Returns a summary of Blackbaud Internet Solutions page visits for a community member.

Parameters

Parameter Parameter Type Mode Description
@NETCOMMUNITYCLIENTUSERID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@VIEWFILTER tinyint IN View visits per
@ASOFDATE datetime IN End date
@DATEUNITCOUNT int IN Number of dates

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_COMMUNITYMEMBERPAGEVISITSUMMARY
                (
                    @NETCOMMUNITYCLIENTUSERID uniqueidentifier,
                    @VIEWFILTER tinyint = 2,
                    @ASOFDATE datetime = null,
                    @DATEUNITCOUNT int = null
                )
                as begin
                    set nocount on;

                    if @VIEWFILTER is null
                        set @VIEWFILTER = 2;

                    if @ASOFDATE is null
                        set @ASOFDATE = getdate();

                    declare @ENDDATE datetime;

                    select
                        @DATEUNITCOUNT = coalesce
                            (
                                @DATEUNITCOUNT,
                                case @VIEWFILTER
                                    when 0 then 15 -- Days

                                    when 1 then 12 -- Weeks

                                    when 2 then 12 -- Months

                                    when 3 then 12 -- Quarters

                                    when 4 then 12 -- Years

                                end
                            ),
                        @ENDDATE =
                            case @VIEWFILTER
                                when 0 then dbo.UFN_DATE_GETEARLIESTTIME(@ASOFDATE)
                                when 1 then dbo.UFN_DATE_THISWEEK_FIRSTDAY(@ASOFDATE, 0)
                                when 2 then dbo.UFN_DATE_THISMONTH_FIRSTDAY(@ASOFDATE, 0)
                                when 3 then dbo.UFN_DATE_THISQUARTER_FIRSTDAY(@ASOFDATE, 0)
                                when 4 then dbo.UFN_DATE_THISCALENDARYEAR_FIRSTDAY(@ASOFDATE, 0)
                            end;

                    select
                        [DATEUNIT].[DATE],
                        count([NETCOMMUNITYWEBTRAFFIC].[ID]) [VISITCOUNT]
                    from
                        (
                            select
                                case @VIEWFILTER
                                    when 0 then dateadd(day, -([TENS].[VALUE] + [ONES].[VALUE]), @ENDDATE)
                                    when 1 then dateadd(week, -([TENS].[VALUE] + [ONES].[VALUE]), @ENDDATE)
                                    when 2 then dateadd(month, -([TENS].[VALUE] + [ONES].[VALUE]), @ENDDATE)
                                    when 3 then dateadd(quarter, -([TENS].[VALUE] + [ONES].[VALUE]), @ENDDATE)
                                    when 4 then dateadd(year, -([TENS].[VALUE] + [ONES].[VALUE]), @ENDDATE)
                                end [DATE]
                            from
                                (    
                                    select 0 [VALUE]
                                    union all select 1
                                    union all select 2
                                    union all select 3
                                    union all select 4
                                    union all select 5
                                    union all select 6
                                    union all select 7
                                    union all select 8
                                    union all select 9
                                ) [ONES]
                                cross join
                                (
                                    select 0 [VALUE]
                                    union all select 10
                                    union all select 20
                                    union all select 30
                                    union all select 40
                                    union all select 50
                                    union all select 60
                                    union all select 70
                                    union all select 80
                                    union all select 90
                                ) [TENS]
                            where
                                [TENS].[VALUE] + [ONES].[VALUE] < @DATEUNITCOUNT
                        ) [DATEUNIT]
                        left join dbo.NETCOMMUNITYWEBTRAFFIC on
                            @NETCOMMUNITYCLIENTUSERID = [NETCOMMUNITYWEBTRAFFIC].[NETCOMMUNITYCLIENTUSERID]
                            and
                            (
                                (
                                    @VIEWFILTER = 0
                                    and
                                    [DATEUNIT].[DATE] = dbo.UFN_DATE_GETEARLIESTTIME([NETCOMMUNITYWEBTRAFFIC].[REQUESTDATE])
                                )
                                or
                                (
                                    @VIEWFILTER = 1
                                    and
                                    [DATEUNIT].[DATE] = dbo.UFN_DATE_THISWEEK_FIRSTDAY([NETCOMMUNITYWEBTRAFFIC].[REQUESTDATE], 0)
                                )
                                or
                                (
                                    @VIEWFILTER = 2
                                    and
                                    [DATEUNIT].[DATE] = dbo.UFN_DATE_THISMONTH_FIRSTDAY([NETCOMMUNITYWEBTRAFFIC].[REQUESTDATE], 0)
                                )
                                or
                                (
                                    @VIEWFILTER = 3
                                    and
                                    [DATEUNIT].[DATE] = dbo.UFN_DATE_THISQUARTER_FIRSTDAY([NETCOMMUNITYWEBTRAFFIC].[REQUESTDATE], 0)
                                )
                                or
                                (
                                    @VIEWFILTER = 4
                                    and
                                    [DATEUNIT].[DATE] = dbo.UFN_DATE_THISCALENDARYEAR_FIRSTDAY([NETCOMMUNITYWEBTRAFFIC].[REQUESTDATE], 0)
                                )
                            )
                    group by
                        [DATEUNIT].[DATE]
                    order by
                        [DATEUNIT].[DATE];

                    return 0;
                end