USP_SPONSORSHIP_ACTIVESPONSORCOUNT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ASOF | datetime | IN | |
@SITES | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIP_ACTIVESPONSORCOUNT
(
@ASOF datetime,
@SITES xml = null
)
as
declare @TABLE table (ID uniqueidentifier);
if @ASOF is not null
insert into
@TABLE
select distinct
SPONSORSHIP.CONSTITUENTID
from
dbo.SPONSORSHIP
where
dbo.SPONSORSHIP.STATUSCODE=1
and
DATEADDED>@ASOF
union
select
CONSTITUENTID
from
dbo.SPONSORSHIPAUDIT AUD
inner join
dbo.CONSTITUENT on AUD.CONSTITUENTID = CONSTITUENT.ID
where
AUD.AUDITDATE > @ASOF
union
select
ID
from
dbo.SPONSOR
where
DATEADDED > @ASOF;
else
insert into
@TABLE
select
ID
from
dbo.SPONSOR;
declare @SITESFILTER table(ID uniqueidentifier primary key);
insert into
@SITESFILTER(ID)
select distinct
T.c.value('(SITEID)[1]','uniqueidentifier')
FROM
@SITES.nodes('/SITES/ITEM') T(c)
select
T.ID,
(
select
COUNT(S.ID)
from
dbo.SPONSORSHIP S
where
S.CONSTITUENTID = T.ID
and
S.STATUSCODE=1
and
(
(@SITES is null)
or
((select COUNT(ID) from @SITESFILTER) = 0)
or
exists(
select
CONSTITUENTSITE.ID
from
CONSTITUENTSITE
inner join
@SITESFILTER as SITES on SITES.ID = CONSTITUENTSITE.SITEID
where
CONSTITUENTSITE.CONSTITUENTID = S.CONSTITUENTID
)
)
) as VAL
from
@TABLE T