Zum Inhalt springen

Erweiterte Abfragen

Edalitics legt besonderen Wert auf Benutzerfreundlichkeit und die Abstraktion des technischen Wissens, das für die Ausführung von Abfragen an einer Datenbank erforderlich ist. Manchmal ist es jedoch notwendig, auf die Leistungsfähigkeit von SQL zurückzugreifen, um komplexe Abfragen durchzuführen. Zu diesem Zweck stellt Edalitics fortgeschrittenen Benutzern den „SQL-Modus“ zur Verfügung. Um auf diesen Modus zuzugreifen, müssen Sie den Schalter oben rechts im Dialog zur Abfragedefinition in der Konfiguration eines Panels aktivieren (1)

Durch Aktivieren dieses Schalters können Sie vom „EDA-Modus“, dem Standardmodus von Edalitics, in diesen „SQL-Modus“ wechseln, in dem fortgeschrittene Benutzer native SQL-Abfragen für die Datenbank definieren und ausführen können.

Sobald der Schalter „SQL-Modus“ aktiviert wurde, kann der Benutzer seine freie SQL-Abfrage in dem dafür vorgesehenen Textbereich definieren (2) und eine der Haupttabellen des Datenmodells angeben, auf der die Abfrage basiert (3).

Abfragen: Es handelt sich um freie native SQL-Abfragen unter Berücksichtigung folgender Einschränkungen:

  • Die Abfragen müssen sich auf dasselbe Datenbankschema beziehen, auf dem der Bericht basiert. Datenbankschemata dürfen nicht gemischt werden. Falls Sie Tabellen aus unterschiedlichen Schemata benötigen, empfehlen wir die Erstellung von Views.
  • Für Tabellen müssen Aliase verwendet werden. Das heißt, die Abfragen müssen nach folgendem Beispielaufbau definiert werden: „select a.field1, a.field2 from table a“.

Um die erweiterte Interaktion mit SQL-Abfragen zu erleichtern, steht auf demselben Bildschirm eine Hilfe (3) zur Verfügung, die Folgendes enthält:

  • Allgemeine Empfehlungen
  • Wie die Berichtsfilter mit unserer SQL-Abfrage verknüpft werden
  • Anwendungsbeispiele

Sobald unsere SQL-Abfrage (2) definiert und die Haupttabelle festgelegt wurde, können wir die Abfrage nun ausführen und ganz normal verwenden, als wäre sie eine beliebige andere Abfrage aus einem beliebigen anderen Panel.

Die nativen SQL-Abfragen werden von Edalitics abgeglichen, und mögliche Datenzugriffsfilter, die im Modell, auf dem der Bericht basiert, vorhanden sein können, werden eingefügt.

Wenn Sie die Abfrage mit den Berichtsfiltern verknüpfen möchten, müssen Sie:

  • Dazu müssen Sie lediglich Folgendes hinzufügen: AND ${alias_table.columna_filtrada} in der ‘WHERE’-Klausel der Abfrage, in die Sie den Filter einfügen möchten
  • Falls Sie noch keine WHERE-Klausel hinzugefügt haben, fügen Sie sie der Abfrage hinzu und führen Sie die notwendigen Joins zusammen mit dem Filter im Format ${alias_table.column_filtered} durch
  • Wenn sich die Tabelle, nach der Sie filtern, nicht in der Abfrage befindet, denken Sie daran, dass Sie die notwendigen JOIN-Klauseln hinzufügen müssen, um die Filtertabelle mit Ihrer Abfrage zu verknüpfen

Hier einige Beispiele:

  • Einfache Abfrage:

SELECT c.customername FROM CUSTOMERSc

  • Abfrage mit verknüpften Berichtsfiltern:

    • Wir haben im Bericht einen Filter für das Feld ‘city’ der Tabelle CUSTOMERS:
      • Abfrage ohne verknüpfte Filter:

        SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘John’)

      • Abfrage mit verknüpften Filtern:

        SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘john’) AND ${c.city}

  • Wir haben im Bericht einen Filter für das Feld ‘office_id’ der Tabelle OFFICES

    • Abfrage ohne verknüpfte Filter:

      SELECT e.employee_name FROM EMPLOYEE e WHERE e.employee_name IN (‘Julia’, ‘John’)

    • Abfrage mit verknüpften Filtern: SELECT e.employee_name FROM EMPLOYEE e INNER JOIN OFFICES or ON o.office_id = e.office_id WHERE e.employee_name IN (‘Julia’, ‘John’) AND ${o.office_id}