SQL zwei Spalten zusammenführen

estre

Commander
Registriert
Dez. 2005
Beiträge
3.006
Hallo zusammen,

ich habe folgende Herausforderung bei der ich Unterstützung bräuchte:

Gegeben ist folgende Tabelle "Person":
IDNameVorname
1ab
2cd
3ef

weiterhin gibt es die Mapping-Tabelle mapping:

IDfk_personfk_rechnung
111
221
331

und schließlich die Tabelle Rechnung

IDNummererstelltAm
1R081502.08.2018


Wie man sieht gibt es zu jeder Rechnung immer mehrere Personen.

Ich benötige nun ein SQL, dass folgendes Ergebnis liefert:

IDfk_pers1fk_pers2fk_pers3rechnungsnummer
1123R0815


Könnt ihr mir hier weiterhelfen? Wichtig ist, dass pro Rechnung immer nur ein Datensatz angezeigt wird mit den dazugehörigen Personen in der selben Spalte.

P.S.: Nein, das sind keine Hausaufgaben! :)

Vielen Dank!
 
Ein Bild sagt mehr als tausend Worte.

sqljoins.jpg
 
Jein...

Hättest du es dir genau angeschaut, würdest du merken, dass nur Joins alleine eigentlich nicht ausreichen, wenn man nicht jedes mal die abfrage anpassen will...

Außerdem, das Bild enthält Text?!
 
Das Venn-Diagramm erklärt bildlich und ohne Worte, welche Mengen mit welcher Überlappung wie verschnitten werden sollen. Daß man dann Text für den Befehl braucht: geschenkt.
 
DBMS? Falls Oracle: Listagg, falls immer weniger als 1000 fk_pers zu einer Rechnung existieren. Ansonsten Joinen und auf Business-/Mapper-Ebene zusammenwursten.
 
@blablub1212: Wahnsinn, ich frage mich wie sich die Leute immer direkt so sicher sind, dass es Hausaufgaben sind. Das nächste Mal kann ich auch die personenbezogenen Firmendaten posten um die es geht ....

Ich habe das Problem jetzt über eine Parition gelöst. Dort habe ich die Tabellen miteinander verknüpft und das Ergebnis sah ungefähr so aus:
IDfk_person1fk_person2fk_person3rechnungsnummer
1null2nullR0815
21nullnullR0815
3nullnull3R0815

Danach habe ich ein select gemacht, das ungefähr so aussah:
select max(fk_person1), max(fk_person2), max(fk_person3), rechnungsnummer from cte_rechnung
group by rechnungsnummer;

Vielen Dank für die Hilfe!
 
@estre

Leider ist die Aufgabe für jeden der beruflich mit SQL zu tun hat sooooo trivial, dass man sehr zielsicher auf Hausaufgaben tippen kann. ;)
 
Zurück
Oben