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