USP_DATALIST_FINDERFILECOUNTS

Returns the finder file counts for a marketing effort.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_FINDERFILECOUNTS]
(
  @SEGMENTATIONID uniqueidentifier
)
with execute as owner
as
  set nocount on;

  declare @TEMP table ([MAILINGNAME] nvarchar(255), [SEGMENTNAME] nvarchar(255), [SOURCECODE] nvarchar(255), [PACKAGEID] uniqueidentifier, [PACKAGENAME] nvarchar(255), [QUANTITY] int);
  declare @SQL nvarchar(max)
  declare @DATATABLE nvarchar(256);
  declare @MAILINGNAME nvarchar(100);

  set @DATATABLE = dbo.[UFN_MKTFINDERFILE_BUILDTABLENAME](@SEGMENTATIONID);
  select @MAILINGNAME = [NAME] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;

  if exists(select 1 from INFORMATION_SCHEMA.TABLES where (TABLE_SCHEMA = 'dbo') and (TABLE_NAME = @DATATABLE))
  begin
    set @SQL = 'select' + char(13) +
               '   @MAILINGNAME [MAILINGNAME],' + char(13) +
               '   isnull([MKTSEGMENTATIONTESTSEGMENT].[NAME], [MKTSEGMENT].[NAME]) [SEGMENTNAME],' + char(13) +
               '   [MKTSOURCECODEMAP].[SOURCECODE] [SOURCECODE],' + char(13) +
               '   isnull([MKTPACKAGE2].[ID], [MKTPACKAGE1].[ID]) [PACKAGEID],' + char(13) +
               '   isnull([MKTPACKAGE2].[NAME], [MKTPACKAGE1].[NAME]) [PACKAGENAME],' + char(13) +
               '   count(*) [QUANTITY]' + char(13) +
               'from dbo.[' + @DATATABLE + '] [DATA]' + char(13) +
               'left join dbo.[MKTSOURCECODEMAP] on [MKTSOURCECODEMAP].[SEGMENTATIONID] = @SEGMENTATIONID and [MKTSOURCECODEMAP].[SOURCECODE] = [DATA].[SOURCECODE]' + char(13) +
               'left join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSOURCECODEMAP].[SEGMENTATIONSEGMENTID]' + char(13) +
               'left join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]' + char(13) +
               'left join dbo.[MKTSEGMENTATIONTESTSEGMENT] on [MKTSEGMENTATIONTESTSEGMENT].[ID] = [MKTSOURCECODEMAP].[SEGMENTATIONTESTSEGMENTID]' + char(13) +
               'left join dbo.[MKTPACKAGE] [MKTPACKAGE1] on [MKTPACKAGE1].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]' + char(13) +
               'left join dbo.[MKTPACKAGE] [MKTPACKAGE2] on [MKTPACKAGE2].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID]' + char(13) +
               'group by [MKTSEGMENTATIONTESTSEGMENT].[NAME], [MKTSEGMENT].[NAME], [MKTSOURCECODEMAP].[SOURCECODE], [MKTPACKAGE2].[ID], [MKTPACKAGE1].[ID], [MKTPACKAGE2].[NAME], [MKTPACKAGE1].[NAME];';
    insert into @TEMP
      exec sp_executesql @SQL, N'@MAILINGNAME nvarchar(100), @SEGMENTATIONID uniqueidentifier',@MAILINGNAME = @MAILINGNAME, @SEGMENTATIONID = @SEGMENTATIONID;
  end

  if exists (select 1 from @TEMP)
    select * from @TEMP;
  else
    select @MAILINGNAME [MAILINGNAME], null [SEGMENTNAME], null [SOURCECODE], null [PACKAGEID], null [PACKAGETNAME], 0 [QUANTITY]

  return 0;