❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

(gelöst) Abfrage - Bedingung setzen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Jelu
Beiträge: 44
Registriert: Mo 1. Jun 2015, 10:28

(gelöst) Abfrage - Bedingung setzen

Beitrag von Jelu » Di 15. Sep 2015, 21:05

Hallo zusammen,

ich versuche eine Abfrage zu basteln, bei der ein zusätzliches Feld "berechnet" werden soll.
Im Detail heißt das,
ist in der Spalte "Anrede" ein "Herr" eingetragen, so soll für diesen Datensatz in der Spalte "AnredeNEU" der Text "Sehr geehrter..." angezeigt werden ansonsten soll "He du.." stehen.

Ich weiß, ein doofes Beispiel aber ich versuche gerade zu verstehen wie LibreOffice tickt und wo man bei den Abfragen solche Bedingungen setzen kann usw.
learning by doing quasi

Gruß
Jelu
Zuletzt geändert von Jelu am Fr 18. Sep 2015, 13:09, insgesamt 1-mal geändert.

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

Re: Abfrage - Bedingung setzen

Beitrag von RobertG » Di 15. Sep 2015, 21:57

Hallo Jelu,

so etwas geht in der SQL-Eingabe mit der CASE WHEN -Bedingung:

Code: Alles auswählen

CASE 
WHEN DAYOFWEEK("Datum")=1 THEN 'Sonntag'
WHEN DAYOFWEEK("Datum")=2 THEN 'Montag' 
END
Für weitere Beispiele siehe auch das Handbuch.

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

Jelu
Beiträge: 44
Registriert: Mo 1. Jun 2015, 10:28

Re: Abfrage - Bedingung setzen

Beitrag von Jelu » Mi 16. Sep 2015, 12:29

Vielen Dank!
Bis das bestellte Handbuch eintrifft, was eigentlich heute sein sollte..., werd ich mal versuchen mit deinem Beispiel ein wenig zu experimetieren. :mrgreen:

Jelu
Beiträge: 44
Registriert: Mo 1. Jun 2015, 10:28

Re: Abfrage - Bedingung setzen

Beitrag von Jelu » Mi 16. Sep 2015, 21:15

Mit der CASEWHEN-Funktion habe ich bereits einige Sachen hinbekommen.
Was mir aber nicht gelingt ist, mehrere Bedingungen zu kombinieren.

Also,
wenn Feld1 = 1 dann prüfe noch Feld2 = B und schreibe im Feld 3 "Text123".
wenn Feld1 = 1 und Feld 2 = X dann schreibe in Feld 3 "Text567",
wenn Feld1 = 0 dann schreib im Feld 3 "leer" (unabhängig davon was in Feld 2 steht)

Na ja, ich hoff mal dass ich mich jetzt nicht zu verwirrt ausgedrückt habe.
Ich habe aktuell im PDF-Handbuch noch nicht die Stelle gefunden, wo solche Verschachtelungen näher beschrieben sind (oder ich muss die Brille mal nachschleifen lassen :lol: ).
Habt Ihr 'nen Tipp für mich?

Gruß
Jelu

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Abfrage - Bedingung setzen

Beitrag von F3K Total » Mi 16. Sep 2015, 22:07

Hi,
Bedingungen können mit boolschen Operatoren (AND, OR) verknüpft werden z.B.

Code: Alles auswählen

SELECT CASE 
    WHEN ("Feld1" = 0 AND  "Feld2" = 'B') THEN 'Text123'
    WHEN ("Feld1" = 0 AND  "Feld2" = 'X') THEN 'Text567' 
    WHEN "Feld1"= 1 THEN 'leer' 
    END as "Feld3"
FROM 
    "Tabelle1"
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Jelu
Beiträge: 44
Registriert: Mo 1. Jun 2015, 10:28

Re: Abfrage - Bedingung setzen

Beitrag von Jelu » Do 17. Sep 2015, 13:58

Mhhh merkwürdig, mit AND und OR hab ichs probiert und bekam immer eine Fehlermeldung.
Daher bin ich davon ausgegangen, dass evtl. ein anderer Befehl statt CASE WHEN verwendet werden müßte.
Nun denn, muss ich nochmal testen. Evtl. hab ich noch woanders einen Fehler...

Danke!

Jelu
Beiträge: 44
Registriert: Mo 1. Jun 2015, 10:28

Re: Abfrage - Bedingung setzen

Beitrag von Jelu » Fr 18. Sep 2015, 09:45

Hallo liebe Gemeinde,
ich hab es hinbekommen und möchte das Ergebnis natürlich gern als Anregung teilen, denn nichts ist schlimmer als bei Google einen Suchtreffer zu landen, in einem Forum zu landen und am Ende zu lesen "...es funktioniert" und es wird nicht erklärt warum und wie ;)

Also, ich habe eine Abfrage (welche Daten aus einer Kundentabelle anzeigt) erstellt mit den Feldern
Ansprache,Name, Vorname, Rufname und formelle Ansprache

Feldbeschreibung:
Anrede (Herr oder Frau)
Name und Vorname dürfte klar sein... ;) .
Im Feld Rufname habe ich teilweise die Kurzformen der Vornamen hinterlegt wenn ich die Leute entsprechend mit "Du" anspreche und die Rufnamen abweichend der Vornamen sind (z.B. Vorname Nicole, Rufname Niki)
Im Feld formelle Ansprache (Ja/Nein) wird festgelegt ob ich den Kunden mit Sie (Haken gesetzt) oder Du (kein Haken) anspreche.

In einer zusätzlichen Spalte der Abfrage habe ich bei Feld Folgendes eingegeben:
CASE WHEN ( "formelle Ansprache" = 1 UND "Anrede" = 'Frau' ) THEN 'Sehr geehrte Frau' || ' ' || "Name" || ',' WHEN ( "formelle Ansprache" = 1 UND "Anrede" = 'Herr' ) THEN 'Sehr geehrter Herr' || ' ' || "Name" || ',' WHEN ( "formelle Ansprache" = 0 UND "Rufname" IST LEER ) THEN 'Hallo' || ' ' || "Vorname" || ',' ELSE 'Hallo' || ' ' || "Rufname" || ',' END

Als Alias habe ich "Anredeneu" eingegeben und Tabelle bleibt leer.

Kurz zur Erklärung:
Die Anweisung prüft als erstes ob der Kunde mit Sie oder Du angesprochen werden soll.
Bei Sie-Ansprache wird noch unterschieden ob Mann oder Frau. Entsprechend dazu wird ein Satz erstellt z.B. "Sehr geehrte Frau Maier," oder "Sehr geehrter Herr Müller,"
Sollte eine Du-Ansprache erfolgen, so wird geprüft ob ein Rufname enthalten ist oder nicht. Falls Rufname vorhanden ist, dann wird dieser in der Ansprache verwendet z.B. "Hallo Niki," wenn kein Rufname vorhanden ist, wird der normale Vorname verwendet z.B. "Hallo Karl-Wilhelm".

Wofür macht das Sinn?
Man kann jetzt die Spalte "Anredeneu" z.B. ganz bequem bei der Erstellung eines Serienbriefes oder einer Serienmail verwenden ohne dass man sich bei der Erstellung eines Briefes Gedanken machen muss wie man die einzelnen Kunden nun ansprechen soll. Alles wird bereits durch die Datenbank-Abfrage geliefert.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten