USP_DATALIST_MAILINGSCHEDULEREPORT
Returns marketing effort summary information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FROMDATE | datetime | IN | From date |
@TODATE | datetime | IN | To date |
@SOURCECODEID | uniqueidentifier | IN | Source code |
@IDSETREGISTERID | uniqueidentifier | IN | Selection ID |
@INCLUDEWITHNODATE | bit | IN | Include mailings with no date |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_MAILINGSCHEDULEREPORT]
(
@FROMDATE datetime = null,
@TODATE datetime = null,
@SOURCECODEID uniqueidentifier = null,
@IDSETREGISTERID uniqueidentifier = null,
@INCLUDEWITHNODATE bit = 0
)
with execute as owner
as
set nocount on;
declare @SQL nvarchar(max);
declare @DBOBJECTNAME nvarchar(128);
declare @DBOBJECTTYPE smallint;
set @SQL =
'
select
[MKTSEGMENTATION].[ID] as [MAILINGID],
[MKTSEGMENTATION].[NAME],
[MKTSEGMENTATION].[CODE],
[MKTSEGMENTATION].[MAILDATE],
[MKTSEGMENTATION].[ACTIVATEDATE],
case [MKTSEGMENTATION].[ACTIVE] when 1 then ''Yes'' else ''No'' end as [ACTIVE],
[MKTSEGMENTATION].[DESCRIPTION],
isnull([MKTSEGMENTATION].[MAILDATE], [MKTSEGMENTATION].[ACTIVATEDATE]) as [SCHEDULEDATE]
from dbo.[MKTSEGMENTATION]
';
if @IDSETREGISTERID is not null
begin
select @DBOBJECTNAME = DBOBJECTNAME,
@DBOBJECTTYPE = OBJECTTYPE
from dbo.[IDSETREGISTER]
where [IDSETREGISTER].[ID] = @IDSETREGISTERID;
if @DBOBJECTTYPE = 1
set @DBOBJECTNAME = @DBOBJECTNAME + '()';
else if @DBOBJECTTYPE = 2
set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @IDSETREGISTERID) + ''')';
set @SQL = @SQL + 'inner join ' + @DBOBJECTNAME + ' as SELECTION on SELECTION.[ID] = [MKTSEGMENTATION].[ID]';
end
set @SQL = @SQL +
'
where (@FROMDATE is null or isnull([MAILDATE], [ACTIVATEDATE]) >= @FROMDATE)
and (@TODATE is null or isnull([MAILDATE], [ACTIVATEDATE]) < dateadd(day, 1, @TODATE))
and (@SOURCECODEID is null or [MKTSEGMENTATION].[SOURCECODEID] = @SOURCECODEID)
';
set @SQL = @SQL +
case
when @INCLUDEWITHNODATE = 1 then
'
or (ISNULL([MAILDATE], [ACTIVATEDATE]) is null)
order by [MAILDATE], [NAME];
'
else
'
order by [MAILDATE], [NAME];
'
end;
exec sp_executesql @SQL,
N'@FROMDATE datetime, @TODATE datetime, @SOURCECODEID uniqueidentifier, @INCLUDEWITHNODATE bit',
@FROMDATE=@FROMDATE, @TODATE=@TODATE, @SOURCECODEID=@SOURCECODEID, @INCLUDEWITHNODATE=@INCLUDEWITHNODATE;
return 0;