spGetAcknowledgementSummary

Parameters

Parameter Parameter Type Mode Description
@EmailTemplateID int IN

Definition

Copy



CREATE    procedure [dbo].[spGetAcknowledgementSummary]
( @EmailTemplateID int )
AS
BEGIN
DECLARE @Messages int
DECLARE @Sent int
DECLARE @Opened int
DECLARE @DSN int
DECLARE @SPAM int
DECLARE @Unsent int
DECLARE @UpdateDate datetime
DECLARE @InvalidAccount int
DECLARE @InactiveAccount int

    SELECT 

        @Messages    = isnull(COUNT(j.id),0),
        @Sent    = isnull(SUM(case r.Sent when 1 then 1 else 0 end),0),
        @Opened = isnull(SUM(case r.Opened when 1 then 1 else 0 end),0),
        @DSN    = isnull(SUM(case when r.DSNed =1 and r.RecentDSNCategory <> 112 then 1 else 0 end),0),
        @SPAM    = isnull(SUM(case when r.DSNed =1 and r.RecentDSNCategory = 112 then 1 else 0 end),0),
        @UpdateDate = isnull(MAX(r.UpdateDate),getutcdate())
    FROM EmailTemplate t
    INNER JOIN Email e on e.EmailTemplateID = t.[ID]
    INNER JOIN EmailJob j on j.EmailID = e.ID and j.[current] = 1
    LEFT OUTER JOIN EmailJob_Recipient as r ON r.EmailJobID = j.[ID] and r.[current] = 1
    WHERE t.[ID] = @EmailTemplateID 
    --AND   j.Status IN (4,6,7)


    SELECT 
        @InvalidAccount    = isnull(SUM(case r.InvalidAccount when 1 then 1 else 0 end),0),
    @InactiveAccount =  isnull(sum(case when isnull(r.Inactive,0) = 1 and (r.OptOut <> 1 and r.InvalidAddress <>1 ) then 1 else 0 end),0)
    FROM EmailTemplate t
    INNER JOIN Email e on e.EmailTemplateID = t.[ID]
    LEFT OUTER JOIN Email_Recipient as r ON r.EmailID = e.[ID]        
    WHERE t.[ID] = @EmailTemplateID     


    SET @UnSent = @Messages - @Sent
END

SELECT
    @EmailTemplateID EmailTemplateID, 
    @Messages Messages, @Sent Sent, @Unsent Unsent, 
    @Opened Opened, @DSN DSN, @UpdateDate UpdateDate, @InvalidAccount InvalidAccounts, @InactiveAccount InactiveAccounts, @SPAM SpamComplaint