micha81
Goto Top

SQL Abfrage, Spalten mit gleicher ID zusammenfügen (Unterschiedliche Daten hinzufügen)

Hallo,

wie ihr feststellen werdet, habe ich nicht viel Ahnung von SQL und vielleicht ist das was ich möchte auch nicht möglich, aber ich frage trotzdem mal.
Vielleicht bringt mir ja auch ein einfach Tipp was um dies zu lösen.

Ich habe in Excel eine Abfrage erstellt, welche mir Daten aus verschiedenen Tabellen einer Datenbank ausgibt.

Es geht hierbei um div. Verkaufspakete welche aus einem oder mehreren Einzelpaketen bestehen können.

Dies ist nur anhand der PaketID ersichtlich.

Bsp.

PaketID | Stück | Länge | Farbe | Breite
1 | 3 | 2,00 | rot | 2,50
2 | 5 | 3,00 | grün | 1,55
3 | 1 | 3,50 | grün | 2,50
3 | 5 | 2,50 | grün | 2,50
3 | 2 | 2,00 | grün | 2,50
4 | 4 | 1,50 | blau | 4,00
5 | 3 | 1,50 | pink | 1,50
5 | 1 | 2,50 | pink | 1,50

Paket 3 besteht z.B. aus 1 x 3,50 / 5 x 2,50 /2 x 2,00
Paket 5 besteht z.B. aus 3 x 1,50 / 1 x 2,50

Diese Ausgabe bekomme ich auch anhand meiner Abfrage ohne Probleme hin. Unterscheiden tun sich immer nur die Stückzahl und die Länge.
Jetzt hätte ich jedoch gerne, das die Pakete (gleiche ID) zusammengefügt ausgegeben werden in einer Spalte.
Das heißt wenn die ID gleich ist, soll er Stück und Länge dahinter schreiben.

PaketID | Stück | Länge | Farbe | Breite | Stück | Länge | Stück | Länge
1 | 3 | 2,00 | rot | 2,50
2 | 5 | 3,00 | grün | 1,55
3 | 1 | 3,50 | grün | 2,50 | 5 | 2,50 | 2 | 2,00
4 | 4 | 1,50 | blau | 4,00
5 | 3 | 1,50 | pink | 1,50 | 1 | 2,50

Hoffe das ist einigermaßen verständlich.

Content-Key: 292841

Url: https://administrator.de/contentid/292841

Printed on: April 19, 2024 at 22:04 o'clock

Member: ukulele-7
ukulele-7 Jan 12, 2016 at 15:12:54 (UTC)
Goto Top
Was du suchst würde man gewöhnlich mit einem GROUP BY und einer Aggregierung der Angaben Anzahl x Länge zu einer Textspalte realisieren. Allerdings schreibst du nicht, welchen SQL Server du einsetzt. Bei MySQL müsste es mit GROUP_CONCAT() gehen, bei MS SQL kann man es mit XML schön machen, das könnte ich dir basteln.