🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

Abfragebedingung gesucht

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Vom_Lande
Beiträge: 3
Registriert: Fr 23. Jan 2015, 19:33

Abfragebedingung gesucht

Beitrag von Vom_Lande » Fr 23. Jan 2015, 23:42

Hallo Leute,

ich will eine Abfrage ungefähr so¹ gestalten:

Code: Alles auswählen

IF "Filtertabelle"."Filter1" IS NOT NULL THEN
SELECT "Tabelle_1"."Spalte_1" || ' ' || "Tabelle_1"."Spalte_2" FROM "Tabelle_1"
ELSE
SELECT "Tabelle_2"."Spalte1" || ' ' || "Tabelle_2"."Spalte2" FROM "Tabelle_2"
END IF
Ist dieses Vorhaben ohne Makros zu lösen?
Wenn "ja" wie würde die Lösung lauten?


MfG
Andy

__________________________________
¹Sehr vereinfaches Beispiel der SELECT-Abfrage

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

Re: Abfragebedingung gesucht

Beitrag von F3K Total » Sa 24. Jan 2015, 01:26

Hi,
unschön, da nur i.O. wenn keine Werte in Spalte 1 und 2 doppelt vorkommen:

Code: Alles auswählen

SELECT DISTINCT CASEWHEN("Filtertabelle"."Filter1" IS NULL,X."Spalte1"||' '||X."Spalte2",Y."Spalte1"||' '||Y."Spalte2") FROM "Filtertabelle", "Tabelle1" X, "Tabelle2" Y
Besser wäre es, beide Tabellen in einer Tabelle zusammenzufassen und eine Unterscheidungsspalte z.B. "U" Integer 1 oder 2 zuzufügen, dann wäre die Abfrage:

Code: Alles auswählen

SELECT "Tabelle1"."Spalte1"||' '||"Tabelle1"."Spalte2" FROM "Filtertabelle", "Tabelle1" WHERE "U" = CASEWHEN("Filtertabelle"."Filter1" IS NULL,1,2)
HTH R
Windows 11: AOO, LO Linux Mint: AOO, LO

Vom_Lande
Beiträge: 3
Registriert: Fr 23. Jan 2015, 19:33

Re: Abfragebedingung gesucht

Beitrag von Vom_Lande » So 25. Jan 2015, 13:06

Hallo F3K Total,


danke für deine Antwort. Leider kann ich beide Code(Beispiele) nicht verwnden:

Code 1
Die Werte in den Spalten 1 und 2 kommen mehrfach vor.

Code 2
Beide Tabellen in einer zu vereinen ist leider nicht möglich, da ich diese Tabellen in den Eingabeformularen als Grundlage für Listenfelder verwende.


Mal schauen wie ich diese Datenbank anonymisieren kann ohne den eigentlichen Sinn und Zweck dieser Datenbank der Öffentlichkeit preiszugeben...


MfG
Andy

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

Re: Abfragebedingung gesucht

Beitrag von F3K Total » So 25. Jan 2015, 13:32

Vom_Lande hat geschrieben:Beide Tabellen in einer zu vereinen ist leider nicht möglich, da ich diese Tabellen in den Eingabeformularen als Grundlage für Listenfelder verwende.
Und? Du kannst Listenfelder statt mit einer Tabelle genauso gut per SQL füllen und dann eben

Code: Alles auswählen

... WHERE U = 1
in das erste und

Code: Alles auswählen

... WHERE U = 2
in das zweite schreiben
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO


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