[GELÖST] WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

[GELÖST] WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Beitrag 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
Dateianhänge
Zuständigkeit.odb
(5.78 KiB) 79-mal heruntergeladen
Zuletzt geändert von geimist am Fr, 04.05.2012 18:21, insgesamt 1-mal geändert.
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Beitrag 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
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Beitrag 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 ...)
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Beitrag 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"
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: [GELÖST] WIE: "Wenn Feld 'X' = 0 dann Feld 'Y'

Beitrag von geimist »

VIELEN DANK!
Das war genau mein Ziel :D
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
Antworten