Wie kann ich spezielle, komplexe Filter definieren?

Das Reporting-Tool “Standard-Export” erlaubt das Exportieren von Rohdaten aus vorbereiteten Tabellen (oder “Views” auf bestimmte Tabellen). Dabei kann via User-Interface auch die entsprechende Filter-Konfiguration vorgenommen werden:

Filter-Panel Standard-Export

Diese Filter werden aus den wählbaren Spalten, dem gewählten Operator und dem Suchbegriff zusammengesetzt.

In vielen Fällen reichen diese Filter-Einstellungen, und man kann sich die gewünschten Filter zusammenklicken.

Sollte dies aber nicht mehr ausreichen, da die Filter-Formulierung zu komplex wird, kann der Filter manuell um SQL-Anweisungen ergänzt werden:

Im Hintergrund läuft eine SQL-Datenbank, welche mit Standard-SQL abgefragt werden kann.

Dabei ist zu beachten, dass der “Filter-Query”-Teil als SQL-WHERE-Klausel benutzt wird:

Aus dem Filter

fall_eroeffnet_am >= '2023-01-01' AND fall_eroeffnet_am <= '2023-04-01'

wird schlussendlich das folgende vollständige SQL:

SELECT * FROM v_rep_falldaten
WHERE
fall_eroeffnet_am >= '2023-01-01' AND fall_eroeffnet_am <= '2023-04-01'

Sie können somit als Filter-Query beliebig komplexe SQL-WHERE-Anweisungen formulieren.

Bitte beachten Sie:

Die Formulierung einer eigenen Abfrage erfordert technisches Verständnis sowohl von SQL sowie von den zugrundeliegenden Tabellen / Views! Ohne Studium des Datenmodells von BISO resp. Rückfrage mit uns können Sie diese Funktionen nicht oder nur experimentell nutzen!

Beispiel:

Als Beispiel möchten wir alle Fälle aus dem Jahr 2023 auflisten, welche von einer weiblichen Beraterin durchgeführt wurden, und mind. 2 Termine aufweisen:

/* Datums-Filter: */
fall_eroeffnet_am >= '2023-01-01' AND fall_eroeffnet_am <= '2023-12-31'
/* weibliche Beraterin: */
AND (berater_id IN (SELECT id FROM person WHERE geschlecht = 'f'))
/* mind 2 Termine */
AND id IN (SELECT beratungsfall_id FROM bf_termin GROUP BY beratungsfall_id HAVING count(*) >= 2)