spREINT_GetNewslettersInfo
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MaxRecords | int | IN | |
@DownloadStartpoint | datetime | IN | |
@LastID | int | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[spREINT_GetNewslettersInfo]
(
@MaxRecords int,
@DownloadStartpoint datetime,
@LastID as int
)
AS
SET ROWCOUNT @MaxRecords
SELECT els.UserID,
bosp.BackofficeRecordID,
els.EmailListID,
el2.name AS "name",
CASE WHEN els.HasOpted = 1 THEN 1 ELSE 0 END AS "subscribed",
e2.id AS "EmailID",
e2.emailtemplateID,
ejr2.sentdate,
ejr2.opened,
(SELECT MAX(d.UpdateDate) FROM (SELECT ejr2.updatedate as UpdateDate UNION SELECT els.UpdateDate) d ) as "UpdateDate",
coalesce(er.ClickedThrough, 0) AS "ClickedThrough",
'' AS "URL",
ejr2.id AS "EmailJobRecipientID"
FROM EmailList_Subscription els
inner join BackOfficeSystemPeople bosp on els.BackofficeSystempeopleID=bosp.id and bosp.backofficeSystemid = 0
LEFT OUTER JOIN (
SELECT els.id AS "ELSID", MAX(ejr.id) AS "EJRID"
FROM emailjob_recipient ejr
inner JOIN email e ON e.id = ejr.emailid
inner JOIN email_emaillist eel ON eel.emailid = e.id
inner JOIN emaillist el ON el.id = eel.emaillistid
inner JOIN emaillist_subscription els ON els.backofficesystempeopleid = ejr.backofficesystempeopleid AND els.emaillistid = el.id
GROUP BY els.id
) AS subLastIssue ON subLastIssue.elsid = els.id
LEFT OUTER JOIN EmailJob_Recipient ejr2 ON ejr2.id = subLastIssue.ejrid
LEFT OUTER JOIN email e2 ON e2.id = ejr2.emailid
LEFT OUTER join dbo.[Email_Recipient] er on er.ID=ejr2.EmailRecipientID
inner JOIN emaillist el2 ON el2.id = els.emaillistid
WHERE (e2.type IS NULL OR e2.type = 2) AND (ejr2.sent IS NULL OR ejr2.sent = 1)
AND (((ejr2.updatedate > @DownloadStartpoint) OR (els.UpdateDate > @DownloadStartPoint))
OR (ejr2.updatedate IS NULL AND els.UpdateDate = @DownloadStartPoint AND els.EmailListID > @LastID))
ORDER BY updatedate,EmailJobRecipientID ASC
SET ROWCOUNT 0