UFN_COMPANY_TEAMS

Get teams count in company

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@PARENTTEAMID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_COMPANY_TEAMS(
   @PARENTTEAMID uniqueidentifier
  --,@TYPECODE tinyint

)

returns table
as
return 
(
  select 
            TE.EVENTID,
            TE.TYPECODE,
            count(TFT.ID) TEAMNUMBER, --current count

            PAA.PREVIOUSTEAMSCNT, -- previous team count

            count(AA.TEAMCONSTITUENTID) as TEAMRETAINEDNUMBER,
            (count(TFT.ID)-count(AA.TEAMCONSTITUENTID)) AS TEAMNEWNUMBER

  from      dbo.TEAMFUNDRAISINGTEAM TFT
  join      dbo.TEAMEXTENSION TE  ON TE.TEAMFUNDRAISINGTEAMID = TFT.ID and TFT.PARENTTEAMID = @PARENTTEAMID AND TE.TYPECODE= 1
  join      dbo.EVENTEXTENSION ET ON TE.EVENTID = ET.EVENTID
  left join dbo.TEAMFUNDRAISINGTEAM PTFT ON TFT.PARENTTEAMID = PTFT.ID 
  left join dbo.TEAMEXTENSION PTE on PTFT.ID = PTE.TEAMFUNDRAISINGTEAMID

  left join ( select  TE2.EVENTID, TE2.TEAMCONSTITUENTID,TE2.TYPECODE 
              from    dbo.TEAMFUNDRAISINGTEAM TFT2
              join    dbo.TEAMEXTENSION TE2 ON TE2.TEAMFUNDRAISINGTEAMID = TFT2.ID) AA 
              on      TE.TEAMCONSTITUENTID = AA.TEAMCONSTITUENTID AND ET.PRIORYEAREVENTID = AA.EVENTID AND AA.TYPECODE=TE.TYPECODE 

  left join ( select  TE2.EVENTID, TE2.TEAMCONSTITUENTID, TE2.TYPECODE, COUNT(TFTCHILD.ID) PREVIOUSTEAMSCNT
              from    dbo.TEAMFUNDRAISINGTEAM TFT2
              join    dbo.TEAMEXTENSION TE2 ON TE2.TEAMFUNDRAISINGTEAMID = TFT2.ID
              left join    dbo.TEAMFUNDRAISINGTEAM TFTCHILD on TFT2.ID = TFTCHILD.PARENTTEAMID
              group by  TE2.EVENTID, TE2.TEAMCONSTITUENTID, TE2.TYPECODE
              ) PAA 
              ON      PTE.TEAMCONSTITUENTID = PAA.TEAMCONSTITUENTID AND ET.PRIORYEAREVENTID = PAA.EVENTID AND pAA.TYPECODE=PTE.TYPECODE 

  GROUP BY  TE.EVENTID, TE.TYPECODE, PAA.PREVIOUSTEAMSCNT
)