🙏 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!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
-
Vom_Lande
- Beiträge: 3
- Registriert: Fr 23. Jan 2015, 19:33
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
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
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
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
in das erste und
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.