Libre Office

[gelöst] Abfrage mit Checkbox filtern

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
hinti
Beiträge: 24
Registriert: Fr 15. Jan 2016, 22:35

[gelöst] Abfrage mit Checkbox filtern

Beitrag von hinti » Fr 5. Feb 2016, 18:45

Hallo!
Ich habe eine Abfrage mit einer FilterTabelle mit drei Filtern. 2 Filter mit Datum und eine mit einer Checkbox (nur_Mitgliedsbeitraege).

Code: Alles auswählen

SELECT `Buchungen_ID`, `Datum`, `BuchungsText`, `Eingang`, `Ausgang`, `Mitgliedsbeitrag` FROM `Imkerverein`.`tbl_Buchungen_Konto` AS `tbl_Buchungen_Konto` WHERE `Datum` >= ( SELECT `Konto_Start_Datum` FROM `Imkerverein`.`tbl_Filter_Datum` ) AND `Datum` <= ( SELECT `Konto_End_Datum` FROM `Imkerverein`.`tbl_Filter_Datum` ) AND `Mitgliedsbeitrag` = ( SELECT `nur_Mitgliedsbeitraege` FROM `Imkerverein`.`tbl_Filter_Datum` )
Das funktioniert auch ganz gut. Ich möchte aber, wenn die Checkbox auf false ist, dass mir alle Datensätze angezeigt werden. In meinem Beispiel werden entweder Buchungen von Mitgliedsbeiträgen, oder alle anderen angezeigt.
Ich muss da wohl so etwas wie eine IF-Anweisung oder CASE WHEN einbauen, komme damit aber nicht klar.
Zuletzt geändert von hinti am Fr 5. Feb 2016, 22:00, insgesamt 1-mal geändert.

RobertG
* LO-Experte *
Beiträge: 2965
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Abfrage mit Checkbox filtern

Beitrag von RobertG » Fr 5. Feb 2016, 19:33

Hallo hinti,

ich erkenne nicht, wie Du einen Checkboxeintrag `nur_Mitgliedsbeiträge` mit einem Feld `Mitgliedsbeitrag` vergleichen kannst - oder steht dar gar kein Beitrag drin?
Wenn beides Checkboxfelder sind, dann könnte das Folgende vielleicht funktionieren:

Code: Alles auswählen

SELECT `Buchungen_ID`, `Datum`, `BuchungsText`, `Eingang`, `Ausgang`, `Mitgliedsbeitrag` FROM `Imkerverein`.`tbl_Buchungen_Konto` AS `tbl_Buchungen_Konto` WHERE `Mitgliedsbeitrag` = CASE WHEN ( SELECT `nur_Mitgliedsbeitraege` FROM `Imkerverein`.`tbl_Filter_Datum` ) = TRUE THEN TRUE ELSE `Mitgliedsbeitrag`; END
Ich habe jetzt aufgrund der Maskierung angenommen, dass es sich bei der angeschlossenen Datenbank um eine MySQL-Datenbank handelt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

hinti
Beiträge: 24
Registriert: Fr 15. Jan 2016, 22:35

Re: Abfrage mit Checkbox filtern

Beitrag von hinti » Fr 5. Feb 2016, 20:28

Hallo Robert!

Danke für die Antwort.
Du hast in beiden Fällen Recht, es sind beides Checkboxfelder und es handelt sich um eine MySQL-Datenbank.

Ich bekomme aber einen Syntaxfehler. Irgend etwas ist da faul. Ich habe auch folgendes versucht:

Code: Alles auswählen

CASE WHEN (SELECT `nur_Mitgliedsbeitraege` FROM `Imkerverein`.`tbl_Filter_Datum` ) = TRUE THEN (SELECT `Buchungen_ID`, `Datum`, `BuchungsText`, `Eingang`, `Ausgang`, `Mitgliedsbeitrag` FROM `Imkerverein`.`tbl_Buchungen_Konto` AS `tbl_Buchungen_Konto` WHERE `Mitgliedsbeitrag`) = TRUE ELSE (SELECT `Buchungen_ID`, `Datum`, `BuchungsText`, `Eingang`, `Ausgang`, `Mitgliedsbeitrag` FROM `Imkerverein`.`tbl_Buchungen_Konto` AS `tbl_Buchungen_Konto` WHERE `Mitgliedsbeitrag`) = FALSE; END
Ich weiß nicht ob die Klammer richtig gesetzt sind, bekomme auch eine Syntaxfehler.

RobertG
* LO-Experte *
Beiträge: 2965
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Abfrage mit Checkbox filtern

Beitrag von RobertG » Fr 5. Feb 2016, 21:43

Hallo hinti,

nimm einmal das Semikolon raus. Ich habe das hier aus einem MySQL-Handbuch übertragen. Damit funktioniert die CASE WHEN - Abfrage aber nicht korrekt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

hinti
Beiträge: 24
Registriert: Fr 15. Jan 2016, 22:35

Re: Abfrage mit Checkbox filtern

Beitrag von hinti » Fr 5. Feb 2016, 21:59

Ja das wars, jetzt läufts.

Danke nochmals für deine Hilfe.

Lg.
hinti

Open Office
Antworten