Editor für Datenquellenabfragen (Suchabfrage)
Erstellen Sie Datenquellenabfragen für Tabellen- und Diagramm-Widgets, um bestimmte Daten aus einer Datenbank auszuwählen. Abfragen werden in der Form eines Datenbankfelds aufgebaut, gefolgt vom Zeichen „=“ und einem Operator, einer Zahl oder einer Zeichenfolge:
database_string=my string database_number=1234 database_number=BETWEEN(3, 6)
Die Abfragen können durch spezifischen JavaScript-Code erweitert werden:
Zeit- und Datumsberechnungen mit momentjs
Operators
Operator | Beschreibung |
|---|---|
| Bereich vom Start- bis zum Endwert. Start- und Endwerte sind durch Kommas getrennt |
| Durch Kommas getrennte Liste von Zahlen oder Zeichenfolgen, mit denen verglichen werden soll |
| Größer als der Wert |
| Größer als oder gleich Wert |
| Wert kleiner als |
| Wert kleiner oder gleich |
| Negation eines Ausdrucks |
| Liste kommagetrennter Ausdrücke. Alle müssen erfüllt sein |
| Liste von durch Kommas getrennten Ausdrücken. Mindestens einer muss erfüllt sein |
| Prüft, ob ein Wert NULL ist |
Beispiele
Wähle alle Datensätze mit einem Gehalt von mehr als 40000 aus:
salary=GT(40000)
Wähle alle Datensätze aus, deren Namen nicht James, John oder Joe lauten:
name=NOT(IN(James%2CJohn%2CJoe))
Wähle alle Datensätze mit einer nicht-NULL-Kunden-ID aus:
customerId=NOT(NULL())
Kommas in Argumenten sollten mit einem Escape-Zeichen versehen werden:
, -> %2C
Dies ist erforderlich, wenn verschachtelte Operatoren wie im obigen Beispiel verwendet werden.
Beispiele mit Moment.js
In den folgenden Beispielen wird `params.interval` über ein Datumsauswahl-Widget festgelegt
Wähle nur Datensätze mit einem Datum aus, das zwischen dem Start- und Enddatum/-zeitpunkt liegt, die von einem Datumsauswahl-Widget bereitgestellt werden. „begin“, „end“ und „format()“ werden aus der momentjs-Bibliothek verwendet:
date=BETWEEN(${interval(params.interval).begin.format()}, ${interval(params.interval).end.format()})
Wählen Sie Datensätze aus dem Vorjahr aus:
year=${interval(params.interval).begin.subtract(1, 'years').format('YYYY')}
Abfrage des gleichen Monats ein Jahr zuvor, wobei der Monat ohne führende Nullen formatiert wird:
month=${interval(params.interval).begin.subtract(params.sub, 'years').format('M')}
Abfrage des Wochentags (0–6):
weekday=${interval(params.interval).begin.day()}
Parameterabhängige Abfrage
Soll eine Abfrage nur dann angewendet werden, wenn ein bestimmter Parameter gesetzt ist (z. B. eine Filter-Matrix-Abfrage), können sowohl die Spalte als auch die Abfragezeichenfolge in if-Anweisungen eingeschlossen werden:
${filterMatrix.device_name ? 'device_name' : 'none'}=${filterMatrix.device_name ? filterMatrix.device_name : ''}
Wenn der Parameter „filterMatrix.device_name“ definiert ist, wird die Spalte auf „device_name“ und die Abfragezeichenfolge auf „filterMatrix.device_name“ gesetzt:
device_name=filterMatrix.device_name
Ist derselbe Parameter nicht definiert, wird die resultierende Abfrage für die wahrscheinlich nicht vorhandene Spalte „none“ konfiguriert:
none=''
Verwendung einer Suchabfrage mit Datumsauswahl
Das Datumsauswahl-Widget ermöglicht es Benutzern, ein Datum oder einen Datumsbereich auszuwählen, der als URL-Parameter übergeben wird.
Diese Parameter können in Suchabfragen verwendet werden, wie im folgenden Beispiel gezeigt:
Angenommen, Mitarbeiterdatensätze verfügen über die Felder „
hire_date“ und „exit_date“. Ist „exit_date“NULL, ist das Arbeitsverhältnis weiterhin aktiv und es liegt kein geplantes Beendigungsdatum vor.Durch die Auswahl eines Datumsbereichs in der Auswahl (z. B. Februar 2022 bis Dezember 2026) werden die folgenden URL-Parameter gesetzt:
interval=BETWEEN(2022-02,2026-12)intervalBucket=monthintervalType=month
Um die Tabelle „Employees“ nach Datensätzen zu filtern, die sich mit dem ausgewählten Zeitraum überschneiden, verwenden Sie die folgende Suchabfrage:
hire_date=LE(${interval(params.interval).end.format()})
exit_date=OR(NULL(), GE(${interval(params.interval).begin.format()}))
Jede Zeile stellt eine eigenständige Regel dar; mehrere Regeln werden mit einer impliziten UND-Bedingung ausgewertet.
Erläuterung der Abfrage:
„
hire_date“ ist kleiner oder gleich dem Ende des Zeitraums (am oder vor Dez. 2026)UND
exit_dateist entwederNULLoder größer oder gleich dem Beginn des Intervalls (am oder nach dem 2. Februar 2022)
