zwei Zeilen zu einer zusammenfassen (gelöst)

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

zwei Zeilen zu einer zusammenfassen (gelöst)

Beitrag von Noebian »

Moin, ich bräuchte mal Hilfe in Sachen SQL.
Grob vereinfacht habe ich folgende Tabelle (als Ergebnis einer Abfrage):

Name * Elternname * Elterncode
Hans Pansen * Kurt Pansen * 1
Hans Pansen * Maria Pansen * 2
Heinz Wurst * Manfred Wurst * 1
Heinz Wurst * Helga Wurst * 2


Haben möchte ich folgendes:
Name * Vater * Mutter
Hans Pansen * Kurt Pansen * Maria Pansen
Heinz Wurst * Manfred Wurst * Helga Wurst

aber wie komme ich dahin?
Zuletzt geändert von Noebian am Di, 17.01.2012 22:41, insgesamt 1-mal geändert.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: zwei Zeilen zu einer zusammenfassen

Beitrag von F3K Total »

Hallo,
angenommen, Deine Tabelle heißt "Kinder_Eltern" mit den Spalten "Name", "Elternname" und "Elterncode"
dann geht der folgende SQL-Code:

Code: Alles auswählen

SELECT DISTINCT "E1"."Name", "E1"."Elternname" as "Elternteil 1", "E2"."Elternname" as "Elternteil 2" FROM (SELECT DISTINCT "Name", "Elternname" FROM "Kinder_Eltern" where "Elterncode" =1) as "E1" LEFT OUTER JOIN (SELECT DISTINCT "Name", "Elternname" FROM "Kinder_Eltern" WHERE "Elterncode" = 2) as "E2" ON "E1"."Name" = "E2"."Name"
Viel Erfolg,
Gruß R
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: zwei Zeilen zu einer zusammenfassen

Beitrag von Noebian »

Hi, danke für die Antwort. Das bringt mich schon ein ganzes Stück weiter.
Allerdings gibt es noch ein Problem: wenn ein Kind nur eine Mutter, aber keinen Vater hat, wird der Datensatz nicht angezeigt...
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: zwei Zeilen zu einer zusammenfassen

Beitrag von F3K Total »

Nun, da nimmt man sich dann eine dritte Abfrage dazu ...

Code: Alles auswählen

SELECT Distinct "Name", "V"."Elternname" AS "Vater", "M"."Elternname" AS "Mutter" FROM "Kinder_Eltern" as "N"
LEFT JOIN (SELECT "Name", "Elternname" FROM "Kinder_Eltern" WHERE "Elterncode" = 1) as "V" ON "N"."Name" = "V"."Name" 
LEFT JOIN (SELECT "Name", "Elternname" FROM "Kinder_Eltern" WHERE "Elterncode" = 2) as "M" ON "N"."Name" = "M"."Name"  
Gruß R
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: zwei Zeilen zu einer zusammenfassen

Beitrag von Noebian »

Super, funtioniert tadelos. (Ich musste allerdings das erste "Name" durch N.Name ersetzen)
Vielen Dank! Ich habe viel gelernt...
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: zwei Zeilen zu einer zusammenfassen

Beitrag von F3K Total »

Hi,
komisch, bei mir geht es ohne N.
Gruß R
Edit: Du benutzt MySQL! Daran liegt es.
Antworten