Salesforce Marketing Cloud – SQL Besonderheiten & Tipps Teil 1
26. Juli 2024E-Mail-Design: Template-Baukästen im Vergleichtest 2024
15. September 2024Salesforce Marketing Cloud
SQL-Besonderheiten & Tipps Teil II
SQL in Salesforce Marketing Cloud – Keine Fehler, aber dennoch falsche Ergebnisse?
Nachdem wir uns im ersten Teil dieser Reihe mit der Problematik der Zeitzonen bei Abfragen mit Datumswerten beschäftigt haben, nun zu einer viel genutzten Methode zur Zusammenführung von Daten aus mehreren Quellen. Bei der SQL-Funktion UNION entscheiden ebenfalls Feinheiten über die Korrektheit von Ergebnissen.
Falle 2: Vorsicht bei der Verwendung von UNION
Die UNION-Funktion wird verwendet, um Daten mit ähnlicher Struktur aus zwei oder mehr Data Extensions zu einer Datentabelle zusammenzuführen. Hier ein Beispiel für eine gängige Abfrage:
SELECT EmailAddress,
SubscriberKey,
FirstName,
LastName
FROM [DataExtension1]
UNION
SELECT EmailAddress,SubscriberKey,
FirstName,
LastName
FROM [DataExtension2]
Diese Abfrage kombiniert die Felder aus DataExtension1 und DataExtension2 in eine neue Data Extension. Die UNION-Funktion entfernt dabei automatisch doppelte Datensätze. Hierbei gibt es jedoch ebenfalls eine Stolperfalle zu beachten: Die Anzahl und Reihenfolge der Felder in allen UNION SQL-Abfragen müssen übereinstimmen.
Unterschiedliche Felderanzahl in Data Extensions bei SQL-Abfragen korrekt handhaben
Die Lösung ist recht einfach. Wenn ein Feld in einer der Data Extensions fehlt, sollten Sie entweder einen Default-Wert vergeben oder festlegen, dass das Feld leerbleiben soll. Es ist wichtig, dass Sie ein fehlendes Feld wie FirstName in der zweiten Data Extension nicht einfach weglassen, da dies zu einer Fehlermeldung führen wird. Wir erläutern an einem Beispiel:
Nehmen wir an, Data Extension 1 ist folgendermaßen aufgebaut:
- EmailAddress | SubscriberKey | FirstName | LastName
Und DataExtension2 hat die Felder in dieser Reihenfolge:
- SubscriberKey | EmailAddress | LastName
Sie möchten nun die Daten aus beiden Data Extensions zusammenführen und in DataExtension3 speichern, die das gleiche Feldlayout wie DataExtension1 aufweist. Um sicherzustellen, dass keine Probleme auftreten, sollten Sie die folgende Abfrage verwenden:
SELECT EmailAddress,
SubscriberKey,
FirstName,
LastName
FROM [DataExtension1]
UNION
SELECT EmailAddress,
SubscriberKey,
FirstName=NULL,
LastName,
FROM [DataExtension2]
Ihr Ergebnis in Data Extension 3 wird folgendermaßen aussehen:
EmailAddress | SubscriberKey | FirstName | LastName |
example@example.de | ABCDE12345 | Max | Mustermann |
beispiel@beispiel.de | VWXYZ67890 | Musterfrau |
Warum ist die Reihenfolge der Felder in UNION-Abfragen so wichtig?
Eine weitere Besonderheit bei der Verwendung von UNION ist die Reihenfolge der abgefragten Felder. Diese Reihenfolge muss in allen Abfragen, die zum UNION gehören, exakt gleich sein. Andernfalls werden die Ergebnisse nicht wie gewünscht zusammengeführt, obwohl keine Fehlermeldung angezeigt wird. Wichtig hierbei zu wissen ist, dass die Reihenfolge der Felder in der ersten Abfrage vor dem UNION-Befehl die Reihenfolge bestimmt, in der die Felder in die Ziel-Data-Extension geschrieben werden. Diese Reihenfolge bleibt dann für alle nachfolgenden Abfragen im UNION bestehen. Auch hierfür haben wir ein kleines Beispiel:
Wenn Sie z.B. die Reihenfolge aus den Data Extensions übernehmen, diese aber wie hier im Beispiel unterschiedlich ist:
SELECT EmailAddress,
SubscriberKey,
FirstName,
LastName
FROM [DataExtension1]
UNION
SELECT SubscriberKey,
EmailAddress,
LastName,
FirstName = NULL
dann würde Ihr Ergebnis in Data Extension 3 so aussehen:
EmailAddress | SubscriberKey | FirstName | LastName |
example@example.de | ABCDE12345 | Max | Mustermann |
VWXYZ67890 | beispiel@beispiel.de | Musterfrau |
Achten Sie daher darauf, dass in allen Abfragen die Felder in derselben Reihenfolge abgefragt werden, um das gewünschte Ergebnis zu erzielen.
UNION versus UNION ALL
Der Vollständigkeit halber möchten wir noch den Unterschied zwischen UNION und UNION ALL ergänzen. Beide Methoden dienen der Kombination von Ergebnissen aus mehreren Abfragen. Der entscheidende Unterschied besteht allerdings darin, dass UNION, wie bereits erwähnt, doppelte Ergebnisse entfernt, während UNION ALL alle Werte, einschließlich der Duplikate, anzeigt.
Wir wissen, dass SQL in Salesforce Marketing Cloud nicht immer einfach zu handhaben ist. Es kommt oft auf kleine, aber entscheidende Details, wie eben die richtige Zeitzone oder die korrekte Reihenfolge der Abfragen an. Diese Feinheiten können den Unterschied zwischen einer erfolgreichen und einer fehlerhaften Datenverarbeitung ausmachen. Sollten Sie auf Probleme stoßen oder Unterstützung benötigen, zögern Sie nicht, uns als Experten zu Rate zu ziehen. Wir stehen Ihnen jederzeit gerne zur Seite, sei es bei Herausforderungen mit SQL oder bei anderen Themen rund um Salesforce Marketing Cloud.
Marketing Cloud Professional Services
Erfahren Sie mehr über unsere Marketing Cloud-Services: von der technischen Implementierung und Integration bis hin zur Umsetzung datengetriebener Cross-Channel Kampagnen – wir bieten Ihnen die komplette Bandbreite an Beratung und Agentur-Dienstleistungen.