Seite 1 von 1
Abfragebedingung gesucht
Verfasst: Fr 23. Jan 2015, 23:42
von Vom_Lande
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
Re: Abfragebedingung gesucht
Verfasst: Sa 24. Jan 2015, 01:26
von F3K Total
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
Re: Abfragebedingung gesucht
Verfasst: So 25. Jan 2015, 13:06
von Vom_Lande
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
Re: Abfragebedingung gesucht
Verfasst: So 25. Jan 2015, 13:32
von F3K Total
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