Mahlzeit hawkmaster1,
vielen Dank, dass Du das von Dir verwendete DBMS angegeben hast ...
Dann rate ich mal:
Kann man in einer Case oder IF Anweisung auch unterschiedliche Tabellen ansprechen?
Ja.
Allerdings liefert ein CASE-Statement immer *genau einen* Wert zurück. Du könntest also z.B. folgendes probieren:
SELECT [...]
, CASE A.TabsJobtkID WHEN 15 THEN J.ControlDef ELSE I.ControlDef END AS ControlDef
, CASE A.TabsJobtkID WHEN 15 THEN J.GroupDef ELSE I.GroupDef END AS GroupDef
FROM elementgroup A
[...]
Unterschiedliche DBMS bieten dafür auch "Kurzschreibweisen" (bzw. Funktionen) an, Oracle z.B.:
SELECT [...]
, DECODE(A.TabsJobtkID, 15, J.ControlDef, I.ControlDef) AS ControlDef
, DECODE(A.TabsJobtkID, 15, J.GroupDef, I.GroupDef) AS GroupDef
FROM elementgroup A
[...]
Mein SQL Befehl mit mehreren JOINs liefert in den Zeilen wo die A.TabsJobtkID = 15 ist, in den Spalten ElementDisplay, ControlDef und GroupDef NULL Werte weil man hier mit einer anderen Tabelle joinen müsste.
Wenn Du Probleme mit NULL-Werten hast, könntest Du Dir auch mal die Funktion NVL() anschauen ...
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|