Я использую Salesforce Marketing Cloud и собираюсь создать таблицу, в которой будет содержаться информация о каждом подписчике и о последних действиях этого подписчика.
Существующий код тянет подписчика и его последнего открытия или щелкает в порядке, но мне нужно указать ссылку на другую таблицу для имени электронной почты.
Структура таблицы:
SUBSCRIBER
+---------+---------------------+
| SubID | EmailAddress |
+---------+---------------------+
| 1 | joe@test.com |
| 2 | jane@test.com |
+---------+---------------------+
OPENS
+---------------+------------+--------+
| EmailAddress | EventDate | JobID |
+---------------+------------+--------+
| joe@test.com | 03/04/19 | 1 |
| joe@test.com | 03/05/19 | 2 |
| joe@test.com | 03/06/19 | 3 |
| jane@test.com | 03/06/19 | 3 |
+---------------+------------+--------+
CLICKS
+---------------+------------+--------+
| EmailAddress | EventDate | JobID |
+---------------+------------+--------+
| joe@test.com | 03/04/19 | 1 |
| joe@test.com | 03/05/19 | 2 |
| joe@test.com | 03/06/19 | 3 |
| jane@test.com | 03/06/19 | 3 |
+---------------+------------+--------+
JOB
+-------------------------------+
| JobID | EmailName |
+--------+----------------------+
| 1 | Spring Sale |
| 2 | You Are Missing Out |
| 3 | Please Help |
+--------+----------------------+
Моя цель - обновить таблицу подписчиков с помощью этой информации:
- Какой была последняя дата помолвки
- Было ли это обязательство электронной почтой Open или Click
- Как называется электронное письмо
Мой текущий SQL:
SELECT
s.[EmailAddress] AS 'EmailAddress',
CASE
WHEN c.EventDate < o.EventDate THEN o.EventDate
ELSE c.EventDate
END AS 'LastEngagedDate',
CASE
WHEN c.EventDate < o.EventDate THEN 'Open'
ELSE 'Click'
END AS 'EngagementType'
FROM Subscriber s
INNER JOIN (
SELECT EmailAddress, MAX(EventDate) AS 'EventDate'
FROM _Click
GROUP BY EmailAddress) c ON c.EmailAddress = s.EmailAddress
INNER JOIN (
SELECT EmailAddress, MAX(EventDate) AS 'EventDate'
FROM _Open
GROUP BY SubscriberKey) o ON o.EmailAddress = s.EmailAddress
Очевидно, это оставляет имя электронной почты. Проблема, с которой я сталкиваюсь, заключается в получении соответствующего JobID, привязанного к MAX (EventDate) для _Click и _Open, чтобы я мог присоединить JobID к таблице _Job, чтобы получить соответствующее имя электронной почты.
Дайте мне знать, если я смогу прояснить эту проблему дальше. Спасибо!