SQL-Masken

Unter Einstellungen | Referenzen - Office | CAS-Referenzen | SQL-Masken können SQLGeschlossen 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

Kopieren
Kunden, Bedarfer mit Angebot > StichDatum
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

  1. Wechseln Sie zur Referenztabelle Einstellungen | Referenzen - Office | CAS-Referenzen | SQL-Masken.

  2. Klicken Sie auf die + Schaltfläche im linken Navigator. Ein neuer Datensatz wird in der linken Liste angelegt.

  3. Vergeben Sie eine eindeutige Nummer.

    Die Kombination aus Nummer und Sprachcode ist dabei eindeutig zu wählen.

  4. 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.

  5. 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.

  6. 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.

  7. 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)

Kopieren
Kunden + Bedarfer mit Angebot > Stichdatum
SELECT KundenNr AS AdressNr, Personenart
FROM Angebot
WHERE DatAngebot >:DatAngebot

Kunden mit Mindestumsatz in Zeitraum

Beispielabfrage Kunden mit Mindestumsatz in Zeitraum (MSSQL)

Kopieren

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.

Kopieren

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)

Kopieren

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)

Kopieren

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)