SQL-Masken
Unter Kürzel für Structured Query Language
SQL ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. SQL ist von ANSI und ISO standardisiert und wird von fast allen gängigen Datenbanksystemen unterstützt.-Statements für die Aktions-Selektion bei den CRM-Aktionen hinterlegt.
SQL-Maske
In einer SQL-Maske (unteres Eingabefeld) kann ein beliebiger SQL-Befehl angegeben werden, der eine Menge von Adressen zurückliefert.
Voraussetzung ist, dass der SQL-Befehl mindestens zwei Resultatfelder und maximal drei Resultatfelder besitzen darf.
Dieses sind AdressNr und PersonenArt und optional AnspPartNr.
Es ist notwendig diese Ergebnis- / Resultatfelder als normale Felder oder als Aliase anzulegen. Dabei kann die PersonenArt als Feld, als Integer-Wert oder als Konstante angegeben werden.
Konstanten
Folgende Konstanten sind möglich:
%paBedarfer
%paKunden
%paGPartner
%paLieferant
%paPersonal
Parameter
Der Befehl kann auch Parameter beinhalten, es ist erforderlich einen : (Doppelpunkt) dem Namen voranzustellen.
In Parameter-Namen können keine Umlaute, Leerzeichen oder Sonderzeichen verwendet werden.
Alle Kunden, Bedarfer für die ein Angebot größer einem bestimmten Datum vorhanden ist
SELECT KundenNr AS AdressNr, Personenart
FROM Angebot
WHERE DatAngebot >:DatAngebot
In der Liste Parameter (unten rechts) können beim Entwurf Beispielwerte für die Parameter eingeben werden.
Wert
Tragen Sie hier den Wert für den in der Abfrage definierten Parameter ein.
Datumswerte bei Parametern
Bei Datumsangaben im Feld Werte sind je nach verwendetem Datenbanksystem (MSSQL oder Firebird) unterschiedliche Schreibweisen erforderlich.
MSSQL
JJJJ.MM.TT -> Beispiel: 2021.12.31
Firebird
TT.MM.JJJJ -> Beispiel: 31.12.2021
SQL-Abfrage prüfen
Über die Schaltfläche SQL-Abfrage prüfen wird geprüft, ob die Abfrage syntaktisch korrekt ist.
Schon beim Speichern einer SQL-Abfrage wird diese geprüft, bei Fehlern kann nicht gespeichert werden.
In den Aktionen kann unter Aktions-Selektion einer Aktion eine SQL-Maske zugeordnet werden. Ist das der Fall, werden die anderen Auswahl-Kriterien für die Selektion ausgeblendet.
Stattdessen werden in einer Liste die zur Maske gehörigen Parameter angezeigt, für die der Anwender dann die genauen Werte hinterlegen kann.
Die Adresserstellung erfolgt daraufhin unter Berücksichtigung der SQL-Maske.
SQL-Abfrage anlegen
-
Wechseln Sie zur Referenztabelle Einstellungen | Referenzen - Office | CAS-Referenzen | SQL-Masken.
-
Klicken Sie auf die
Schaltfläche im linken Navigator. Ein neuer Datensatz wird in der linken Liste angelegt.
-
Vergeben Sie eine eindeutige Nummer.
Die Kombination aus Nummer und Sprachcode ist dabei eindeutig zu wählen.
-
Wählen Sie einen Sprachcode aus der Referenztabelle Sprachen aus. Der Sprachcode bezieht sich dabei auf die Sprache, die bei den Eintragungen im Feld Bezeichnung verwendet wird.
Tragen Sie eine Bezeichnung gemäß dem eingestellten Sprachcode ein.
Bei Bedarf können Beschriftungen in weiteren Sprachen hinzugefügt werden.
-
Erfassen Sie die SQL-Abfrage im unteren Eingabefeld im Format
Select Feld1 als AdressNr, Feld2 als PersonenArt[, Feld3 as AnspPartNr] From Tabelle
Bedingungen
-
Es ist notwendig, dass die selektierten Felder (SELECT) in einer Zeile stehen.
-
Es sind mindestens die zwei Ergebnisfelder AdressNr und PersonenArt erforderlich.
-
Höchstens drei Ergebnisfelder (AdressNr, PersonenArt, AnspPartNr) können verwendet werden.
-
Am Ende einer Zeile darf sich kein Leerzeichen befinden.
-
In der Abfrage sind mehrfache Leerzeichen und Tabulatoren nicht zulässig.
-
Für Parameter-Namen können keine Umlaute, Anführungszeichen, Hochkomma und Leerzeichen verwendet werden.
-
-
Speichern Sie die Abfrage mit der
Schaltfläche.
Die Abfrage wird beim Speichern geprüft, bei Fehlern wird ein Hinweis angezeigt und es kann nicht gespeichert werden.
-
Haben Sie Parameter in die Abfrage eingefügt, können Sie in der Parameter-Liste rechts unten für jeden Parameter einen Wert eintragen und mit der Schaltfläche SQL-Abfrage prüfen, kontrollieren, ob der Aufbau des SQL-Befehls korrekt ist.
Beispiele SQL-Abfragen
Kunden, Bedarfer mit Angebot größer Stichdatum
Beispielabfrage Kunden und Bedarfer mit Angebot größer dem Stichdatum (MSSQL)
SELECT KundenNr AS AdressNr, Personenart
FROM Angebot
WHERE DatAngebot >:DatAngebot
Kunden mit Mindestumsatz in Zeitraum
Beispielabfrage Kunden mit Mindestumsatz in Zeitraum (MSSQL)
Kunden mit Mindestumsatz in Zeitraum
SELECT KundenNr AS AdressNr, %paKunden AS PersonenArt FROM RechAusg
WHERE NOT KundenNr IS NULL
AND RechnungDat >= :ZeitraumAb
AND RechnungDat <= :ZeitraumBis
GROUP BY KundenNr
HAVING SUM(NettoBetrag) > :Mindestumsatz
Kunden mit Mindestumsatz in Zeitraum mit Ansprechpartner
Beispielabfrage Kunden mit Mindestumsatz in Zeitraum mit Ansprechpartner (MSSQL)
Auswahl des Ansprechpartner über ein zugeordnetes Marketingattribut, siehe auch Bereich 'Marketing-Attribute'.
Bei dem Parameter APAttribut tragen Sie als Wert die Nummer des entsprechenden Marketingattributes ein.
Kunden mit Mindestumsatz in Zeitraum +AP
SELECT RA.KundenNr AS AdressNr, %paKunden AS PersonenArt, AP.AnspPartNr
FROM RechAusg RA
JOIN AnspPart AP ON AP.KundenNr = RA.KundenNr
JOIN AnspMark ATT ON ATT.AnspPartNr = AP.AnspPartNr
AND ATT.MarketingAttributCode = :APAttribut
WHERE NOT RA.KundenNr IS NULL
AND RA.RechnungDat >= :ZeitraumAb
AND RA.RechnungDat <= :ZeitraumBis
GROUP BY RA.KundenNr, AP.AnspPartNr
HAVING SUM(RA.NettoBetrag) > :Mindestumsatz
Vertragskunden ungekündigt bis Stichtag
Beispielabfrage Vertragskunden ungekündigt bis Stichtag (MSSQL)
Vertragskunden ungekündigt bis Stichtag
SELECT DISTINCT A.KundenNr AS AdressNr, %paKunden AS PersonenArt
FROM AnlgVtrg V, Anlagen A
WHERE V.AnlagenNr = A.AnlagenNr
AND (V.DatGekuendigt IS NULL
OR V.DatGekuendigt > :StichtagKuendigung)
Vertragskunden ungekündigt Stichtag und Ansprechpartner
Auswahl des Ansprechpartner über ein zugeordnetes Marketingattribut, siehe auch Bereich 'Marketing-Attribute'.
Bei dem Parameter APAttribut tragen Sie als Wert die Nummer des entsprechenden Marketingattributes ein.
Beispielabfrage Vertragskunden ungekündigt bis Stichtag mit Ansprechpartner (MSSQL)
Vertragskunden ungekündigt Stichtag +AP
SELECT DISTINCT AP.AnspPartNr, A.KundenNr AS AdressNr, %paKunden AS PersonenArt
FROM AnlgVtrg V, Anlagen A
JOIN AnspPart AP ON AP.AdressNr = A.KundenNr
JOIN AnspMark ATT ON ATT.AnspPartNr = AP.AnspPartNr
AND ATT.MarketingAttributCode = :APAttribut
WHERE V.AnlagenNr = A.AnlagenNr
AND (V.DatGekuendigt IS NULL
OR V.DatGekuendigt > :StichtagKuendigung)