Guest User

Untitled

a guest
Mar 17th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.76 KB | None | 0 0
  1. DECLARE @MasterBatchEmailJobID int;
  2. DECLARE @CommitteeId int;
  3. DECLARE @DSCommitteeId int;
  4. DECLARE @Unregistered int;
  5. DECLARE @FirstRec int;
  6. DECLARE @LastRec int;
  7. SET @MasterBatchEmailJobID = 100246;
  8. SET @CommitteeId = 58097;
  9. SET @DSCommitteeId = 58097;
  10. SET @Unregistered = 10;
  11. SET @FirstRec = 1;
  12. SET @LastRec = 40;
  13. -- Debug Message --
  14. -- Grid report: Email Performance Report: ENL FE 6/8/17 SNAP budget cuts --
  15. -- Database Type --
  16. -- StateDB,UCS, MyCampaign --
  17.  
  18. ;WITH ConversionInfo AS (
  19. SELECT MIN(cof.DateSubmitted) AS [FirstDateConverted], COUNT(cof.ContactsOnlineFormID) AS [ConversionCount], cof.BatchEmailJobDistributionID AS [BatchEmailJobDistributionID], cof.SubmittedContactsEmailID AS [SubmittedContactsEmailID]
  20. FROM ContactsOnlineForms AS [cof]
  21. WHERE (cof.SubmittedContactsEmailID IS NOT NULL)
  22. GROUP BY cof.BatchEmailJobDistributionID, cof.SubmittedContactsEmailID
  23.  
  24. )
  25. , ContributionInfo AS (
  26. SELECT MIN(cc.DateReceived) AS [FirstDateReceived], COUNT(cc.ContactsContributionID) AS [ContributionCount], SUM(cc.Amount) AS [TotalAmount], cof.BatchEmailJobDistributionID AS [BatchEmailJobDistributionID], cof.SubmittedContactsEmailID AS [SubmittedContactsEmailID]
  27. FROM (ContactsOnlineForms AS [cof]
  28. JOIN ContactsContributions AS [cc]
  29. ON (cc.ContactsOnlineFormID = cof.ContactsOnlineFormID))
  30. WHERE (cof.SubmittedContactsEmailID IS NOT NULL)
  31. GROUP BY cof.BatchEmailJobDistributionID, cof.SubmittedContactsEmailID
  32.  
  33. )
  34. , a AS (
  35. SELECT ContactsEmailBatches.ContactsEmailBatchID AS [ContactsEmailBatchID], CAST(DATEADD(hour, 0, bejd.DateSent) AS DATE) AS [DateSent], bejd.DateSent
  36. AS [DateSent_Sorted], ContactsEmailBatches.Email AS [Email], ContactsEmailBatches.VANID AS [VANID], CASE
  37. WHEN ContactsDisplay.ContactModeID = 1 THEN
  38. CASE WHEN ContactsDisplay.LastName IS NULL AND ContactsDisplay.FirstName IS NULL THEN
  39. '[Unknown]'
  40. ELSE
  41. ISNULL(ContactsDisplay.LastName, '[Unknown]') + ', ' + ISNULL(ContactsDisplay.FirstName, '[Unknown]')
  42. + CASE WHEN ContactsDisplay.MiddleName IS NULL THEN '' ELSE ' ' + ContactsDisplay.MiddleName END
  43. + CASE WHEN ContactsDisplay.Suffix IS NULL THEN '' ELSE ' ' + ContactsDisplay.Suffix END
  44. END
  45. ELSE
  46. COALESCE(ContactsDisplay.OrganizationContactCommonName, ContactsDisplay.OrganizationContactOfficialName, '[Unknown]')
  47. END AS [ContactName], ContactsEmailBatches.VANID AS [ContactName_Filter], CASE WHEN ContactsEmailBatches.DateFirstRead IS NOT NULL THEN 1 ELSE 0 END AS [Opened], CASE WHEN ContactsEmailBatches.DateFirstClicked IS NOT NULL THEN 1 ELSE 0 END AS [Clicked], CASE WHEN ConversionInfo.ConversionCount > 0 THEN 1 ELSE 0 END AS [HasConverted], ContributionInfo.TotalAmount AS [ContributionInfoAmount], CASE WHEN ContactsEmailBatches.DateBounced IS NOT NULL THEN 1 ELSE 0 END AS [Bounced], CASE WHEN es.EmailSubscriptionID IS NOT NULL THEN 1 ELSE 0 END AS [Unsubscribed], bej.EmailSubject AS [EmailSubject], bej.BatchEmailJobName AS [BatchEmailJobName], bej.BatchEmailJobID AS [BatchEmailJobName_Filter]
  48. FROM (((((((ContactsEmailBatches AS [ContactsEmailBatches] WITH (NOLOCK)
  49. JOIN BatchEmailJobs AS [bej] WITH (NOLOCK)
  50. ON (ContactsEmailBatches.BatchEmailJobID = bej.BatchEmailJobID))
  51. JOIN MasterBatchEmailJobs AS [mbej] WITH (NOLOCK)
  52. ON (mbej.MasterBatchEmailJobID = bej.MasterBatchEmailJobID))
  53. LEFT JOIN EmailSubscriptions AS [es] WITH (NOLOCK)
  54. ON (ContactsEmailBatches.Email = es.Email AND es.UnsubscribedByBatchEmailJobDistributionID = ContactsEmailBatches.BatchEmailJobDistributionID))
  55. JOIN ContactsDisplay AS [ContactsDisplay] WITH (NOLOCK)
  56. ON (ContactsEmailBatches.VanID = ContactsDisplay.VanID))
  57. LEFT JOIN BatchEmailJobDistributions AS [bejd] WITH (NOLOCK)
  58. ON (bejd.BatchEmailJobDistributionID = ContactsEmailBatches.BatchEmailJobDistributionID))
  59. LEFT JOIN ConversionInfo AS [ConversionInfo] WITH (NOLOCK)
  60. ON (ConversionInfo.BatchEmailJobDistributionID = ContactsEmailBatches.BatchEmailJobDistributionID AND ConversionInfo.SubmittedContactsEmailID = ContactsEmailBatches.ContactsEmailID))
  61. LEFT JOIN ContributionInfo AS [ContributionInfo] WITH (NOLOCK)
  62. ON (ContributionInfo.BatchEmailJobDistributionID = ContactsEmailBatches.BatchEmailJobDistributionID AND ContributionInfo.SubmittedContactsEmailID = ContactsEmailBatches.ContactsEmailID))
  63. WHERE ((mbej.MasterBatchEmailJobID = @MasterBatchEmailJobID)
  64. AND (ContactsEmailBatches.DateBlacklisted IS NULL)
  65. AND (ContactsDisplay.CommitteeID = @DSCommitteeId)
  66. AND (ContactsDisplay.VoterTypeID >= @Unregistered))
  67.  
  68. )
  69. , b AS (
  70. SELECT ContactsEmailBatchID AS [ContactsEmailBatchID], DateSent AS [DateSent], DateSent_Sorted AS [DateSent_Sorted], Email AS [Email], VANID AS [VANID], ContactName AS [ContactName], ContactName_Filter AS [ContactName_Filter], Opened AS [Opened], Clicked AS [Clicked], HasConverted AS [HasConverted], ContributionInfoAmount AS [ContributionInfoAmount], Bounced AS [Bounced], Unsubscribed AS [Unsubscribed], EmailSubject AS [EmailSubject], BatchEmailJobName AS [BatchEmailJobName], BatchEmailJobName_Filter AS [BatchEmailJobName_Filter], ROW_NUMBER() OVER (ORDER BY ContactsEmailBatchID DESC) AS [ReportRowNumber]
  71. FROM a AS [b]
  72.  
  73. )
  74. , c AS (
  75. SELECT COUNT(1) AS [__total_rows__]
  76. FROM a AS [c]
  77.  
  78. )
  79. SELECT ContactsEmailBatchID AS [ContactsEmailBatchID], DateSent AS [DateSent], DateSent_Sorted AS [DateSent_Sorted], Email AS [Email], VANID AS [VANID], ContactName AS [ContactName], ContactName_Filter AS [ContactName_Filter], Opened AS [Opened], Clicked AS [Clicked], HasConverted AS [HasConverted], ContributionInfoAmount AS [ContributionInfoAmount], Bounced AS [Bounced], Unsubscribed AS [Unsubscribed], EmailSubject AS [EmailSubject], BatchEmailJobName AS [BatchEmailJobName], BatchEmailJobName_Filter AS [BatchEmailJobName_Filter], ( SELECT MAX(c.[__total_rows__]) AS [__total_rows__]
  80. FROM c AS [c]
  81. ) AS [__total_rows__]
  82. FROM b AS [d]
  83. WHERE (ReportRowNumber BETWEEN @FirstRec AND @LastRec)
  84.  
  85.  
  86. OPTION(RECOMPILE)
Add Comment
Please, Sign In to add comment