UFN_FAF_GROUPCOUNT_BY_EVENTID
Returns max member count in each group by event id
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_FAF_GROUPCOUNT_BY_EVENTID(@EVENTID uniqueidentifier)
returns @GROUPCOUNT table
(
maxhousehold int,
maxteammembers int,
maxcompanyteams int,
maxcompanymembers int
)
AS
BEGIN
declare @TEAMS table(ID int IDENTITY(1,1), TEAMID uniqueidentifier, TYPECODE tinyint);
declare @i int = 1
declare @TOTAL int
declare @maxhousehold int = 0;
declare @maxteammembers int = 0;
declare @maxcompanyteams int = 0;
declare @maxcompanymembers int = 0;
declare @TEAMID uniqueidentifier
declare @maxhouseholdtmp int = 0;
declare @maxteammemberstmp int = 0;
declare @maxcompanyteamstmp int = 0;
declare @maxcompanymemberstmp int = 0;
declare @teamtype tinyint
declare @topTeamTypeCode smallint
INSERT INTO @TEAMS(TEAMID, TYPECODE)
SELECT TEAMFUNDRAISINGTEAMID, TYPECODE from dbo.TEAMEXTENSION (NOLOCK) WHERE EVENTID = @EVENTID
SELECT @TOTAL = count(*) from @TEAMS
WHILE @i <= @TOTAL
BEGIN
SET @TEAMID = null;
SET @teamtype = null;
SELECT @TEAMID = TEAMID, @teamtype = TYPECODE FROM @TEAMS WHERE ID = @i;
IF @teamtype = 3
select @maxhouseholdtmp = count(*) from dbo.UFN_FAF_HOUSEHOLDMEMBERS_BY_HHTEAMID(@TEAMID)
ELSE SET @maxhouseholdtmp = 0;
IF @teamtype = 1
select @maxteammemberstmp = count(*) from dbo.UFN_FAF_TEAMMEMBERLIST_BY_TEAMID(@TEAMID)
ELSE SET @maxteammemberstmp = 0;
IF @teamtype = 2
BEGIN
select @maxcompanyteamstmp = count(*) from dbo.UFN_FAF_GETTEAMHIEARACHY(@TEAMID) where PARENTTEAMID IN
(SELECT TEAMFUNDRAISINGTEAMID FROM dbo.TEAMEXTENSION where EVENTID=@EVENTID and TYPECODE = 2)
END
ELSE SET @maxcompanyteamstmp = 0;
IF @teamtype = 2
BEGIN
select @maxcompanymemberstmp = dbo.UFN_FAF_TEAMEMBERCOUNT_BY_COMPANYID(@TEAMID)
END
ELSE SET @maxcompanymemberstmp = 0;
IF @maxhouseholdtmp > @maxhousehold
SET @maxhousehold = @maxhouseholdtmp
IF @maxteammemberstmp > @maxteammembers
SET @maxteammembers = @maxteammemberstmp
IF @maxcompanyteamstmp > @maxcompanyteams
SET @maxcompanyteams = @maxcompanyteamstmp
IF @maxcompanymemberstmp > @maxcompanymembers
SET @maxcompanymembers = @maxcompanymemberstmp
SET @i = @i + 1;
END
BEGIN
INSERT INTO @GROUPCOUNT(maxhousehold,maxteammembers,maxcompanyteams,maxcompanymembers)
VALUES(@maxhousehold,@maxteammembers,@maxcompanyteams,@maxcompanymembers)
END
RETURN;
END