Seite 1 von 1
[GELÖST] WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'
Verfasst: Do, 03.05.2012 15:01
von geimist
Hallo an alle.
In einer Mitarbeitertabelle habe ich Boolean-Felder um den Mitarbeiter als Abteilungsleiter bzw. Unterabteilungsleiter zu markieren.
In einer Abfrage möchte ich für alle Mitarbeiter den jeweiligen Unterabteilungsleiter mit ausgeben. Das geht auch.
Das Problem liegt darin, dass es in manchen Abteilungen zwar Unterabteilungen gibt, aber keine Unterabteilungsleiter. In diesem Fall soll der Abteilungsleiter an Stelle vom Unterabteilungsleiter ausgeben werden.
Dieser Versucht aus der Abfrage 1 in der angehangenen DB geht so nicht:
Code: Alles auswählen
IFNULL( "Mitarbeiter_1"."Verantwortlich Unterabteilung", "Mitarbeiter_1"."Verantwortlich Abteilung" )
Ich bin natürlich für jeden Tipp wie immer dankbar
Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'
Verfasst: Do, 03.05.2012 17:05
von RobertG
Hallo Stephan,
Leider bleibt mir die Sache unklar. Du hast in Deinem Beipsiel 3 Mitarbeiter. Folglich müsste doch die Abfrage auch für nur drei Mitarbeiter etwas ausgeben. Ich benenne die jetzt einmal mit der ID:
1 und 2 haben eine Unterabteilung - muss also im Ergebnis zusätzlich zum Mitarbeiter da stehen
3 hat keine Unterabteilung, da müsste also 7 eingesetzt werden.
Bevor ich da nicht Klarheit habe und nur zwei Abfragen mit meiner Meinung nach viel zu viel Ergebnisdatensätzen verwirrt mich Dein Anliegen nur.
Gruß
Robert
Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'
Verfasst: Do, 03.05.2012 17:25
von geimist
Hallo Robert,
das Problem tritt in meinem Beispiel bei der Buchhaltung auf. Bitte schau dir mal die Abfrage1 an (die Abfrage2 ist nur ein weiterer Versuch, der nicht geht).
Es gibt keinen Unterabteilungsleiter für Buchhaltung/Zoll, sondern lediglich einen Abteilungsleiter 'Buchhaltung'. Deswegen wird der Mitarbeiter mit der ID 4 ("Mitarbeiter Buchhaltung / Zoll") nicht ausgebenen - ist auch logisch, da es keinen entsprechenden Unterabteilungsleiter gibt. Und genau hier möchte ich den Abteilungsleiter mit ausgeben.
Ich hoffe, es ist jetzt etwas verständlicher ...
Damit es überhaupt mit den Unterabteilungsleiter funktioniert, muss ich die Unterabteilungen in Relation zueinander setzen. Wahrscheinlich stört das, wenn ich die Abteilungsleiter abfragen möchte (die müssten ja auch in Relation zueinander stehen ...)
Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'
Verfasst: Do, 03.05.2012 19:51
von DPunch
Servus
Probiers mal so
Code: Alles auswählen
SELECT
"MA"."Name",
COALESCE(
(SELECT "Name" FROM "Mitarbeiter" WHERE "Unterabteilung" = "MA"."Unterabteilung" AND "Verantwortlich Unterabteilung" = TRUE LIMIT 1),
(SELECT "Name" FROM "Mitarbeiter" WHERE "Abteilung" = "MA"."Abteilung" AND "Verantwortlich Abteilung" = TRUE LIMIT 1),
'Kein Verantwortlicher benannt'
) "Verantwortlich"
FROM "Mitarbeiter" "MA"
Re: [GELÖST] WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'
Verfasst: Fr, 04.05.2012 18:22
von geimist
VIELEN DANK!
Das war genau mein Ziel
