UFN_MKTSMARTFIELD_GETEXTRACONSTITS_DYNAMICSQL_2

Text of dynamic SQL that returns constituents from other tables, taking SITES parameter into account.

Return

Return Type
nvarchar(1000)

Parameters

Parameter Parameter Type Mode Description
@SITES xml IN

Definition

Copy


CREATE function dbo.[UFN_MKTSMARTFIELD_GETEXTRACONSTITS_DYNAMICSQL_2]
(
  @SITES xml
)
returns nvarchar(1000)
with execute as caller
as begin
  declare @SQL as nvarchar(1000);

  set @SQL =
  -- update for any constituents who were removed from a REVENUE record (merge, change constit on payment)

  '  union' + char(13) +   
  '  select [CONSTITUENTID] from dbo.[REVENUEAUDIT] inner join dbo.[CONSTITUENT] on [CONSTITUENT].[ID] = [REVENUEAUDIT].[CONSTITUENTID] where [REVENUEAUDIT].[AUDITDATE] > @ASOF' + char(13);

  if @SITES is not null
    set @SQL = @SQL + 'and (@SITES is null or exists (select top 1 1 from dbo.[CONSTITUENTSITE] inner join dbo.[UFN_CONSTITUENT_GETSITES_FROMITEMLISTXML](@SITES) [SITES] on [SITES].[SITEID] = [CONSTITUENTSITE].[SITEID] where [CONSTITUENTSITE].[CONSTITUENTID] = [CONSTITUENT].[ID]))' + char(13);

  -- update for any recently added constituents (the result will be 0)

  set @SQL = @SQL +
  '  union' + char(13) +   
  '  select [ID] from dbo.[CONSTITUENT] where [DATEADDED] > @ASOF' + char(13);

  if @SITES is not null
    set @SQL = @SQL + 'and (@SITES is null or exists (select top 1 1 from dbo.[CONSTITUENTSITE] inner join dbo.[UFN_CONSTITUENT_GETSITES_FROMITEMLISTXML](@SITES) [SITES] on [SITES].[SITEID] = [CONSTITUENTSITE].[SITEID] where [CONSTITUENTSITE].[CONSTITUENTID] = [CONSTITUENT].[ID]))' + char(13);

  return @SQL;
end