UFN_NUMBERGROUPMEMBERS

Calculate the number of members under an entity

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@TEAMFUNDRAISINGTEAMID uniqueidentifier IN

Definition

Copy


CREATE function [dbo].[UFN_NUMBERGROUPMEMBERS]
(
    @TEAMFUNDRAISINGTEAMID as uniqueidentifier
)
returns TABLE
as
return

With [All] (TeamID, ParentID, MEMBERS)
  As 
  (        
      select TFT.ID, TFT.PARENTTEAMID, COUNT(TFTM.ID) MEMBERS --TFT.name, 

      from TEAMFUNDRAISINGTEAMMEMBER TFTM
      join TEAMFUNDRAISINGTEAM TFT on TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID
        join TEAMEXTENSION TE ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID  -- add this join here to make sure we only calculate FAF teams

      group by TFT.ID, TFT.PARENTTEAMID 
  ),
  [Final] 
  As
  (
      select TeamID as ParentID, TeamID, MEMBERS 
      from [All

      Union All

      select F.ParentID, A.TeamID, A.MEMBERS
      from [Final] F 
          join [All] A on F.TeamID = A.ParentID    
  ),
  [Final2] 
as
  (select F.ParentID, F.TeamID, TE.TYPECODE, F.MEMBERS, 'TOTALMEMBERS'= F.MEMBERS
  from [Final]  F
  JOIN TEAMEXTENSION TE ON  TE.TEAMFUNDRAISINGTEAMID= F.TeamID
 )

  select ParentID as ID, SUM(TOTALMEMBERS) as Value
  from [Final2] 
  where ParentID= @TEAMFUNDRAISINGTEAMID
  group by ParentID