MySQL Datenbank Tabelle kopieren und Gruppieren
Hallo zusammen,
ich bin noch relativ neu im Thema MySQL Datenbanken aber ich muss eine Tabelle vom Format:
ID/Rezept /Menge1/Produkt1 /Menge2 /Produkt2/Menge3/Produkt3/...../Produkt10
1/Baugruppe1/5 /Schrauben/10 /Muttern /2 /Kappen /..........
in dieses Format kopieren:
ID/Menge/Produkt
1 /5 /Schrauben
2 /10 /Muttern
3 /2 /Kappen
Wie kann ich da ma schnellsten umstetzen?
mit freudlichen g
ich bin noch relativ neu im Thema MySQL Datenbanken aber ich muss eine Tabelle vom Format:
ID/Rezept /Menge1/Produkt1 /Menge2 /Produkt2/Menge3/Produkt3/...../Produkt10
1/Baugruppe1/5 /Schrauben/10 /Muttern /2 /Kappen /..........
in dieses Format kopieren:
ID/Menge/Produkt
1 /5 /Schrauben
2 /10 /Muttern
3 /2 /Kappen
Wie kann ich da ma schnellsten umstetzen?
mit freudlichen g
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1750784834
Url: https://administrator.de/forum/mysql-datenbank-tabelle-kopieren-und-gruppieren-1750784834.html
Ausgedruckt am: 20.04.2025 um 15:04 Uhr
10 Kommentare
Neuester Kommentar
Geht das nur mir so, oder ist die Frage bzgl. Quelle ziemlich wirr?
Ich kann nicht nachvollziehen, was aus der Quelle im Ergebnis wo landen soll
..
.Nachtrag:
Ich versuch das mal zu verdeutlichen, wie ich es nach zigmaligem Lesen interpretieren würde:
Tabelle Quelle
Die Zieltabelle soll sein:
wo offensichtlich "Rezept" entfällt.
Ich kann nicht nachvollziehen, was aus der Quelle im Ergebnis wo landen soll
.Nachtrag:
Ich versuch das mal zu verdeutlichen, wie ich es nach zigmaligem Lesen interpretieren würde:
Tabelle Quelle
ID - Rezept - Menge1 - Produkt1 - Menge2 - Produkt2 - Menge3- Produkt3 ... bis Produkt10
Die Zieltabelle soll sein:
ID - Menge - Produkt
Moin,
Eigentlich müsstest du mit UNPIVOT arbeiten, was MySQL aber (scheinbar) nicht kann.
Ergo bleibt dir vermutlich nur, die Tabelle mit UNION ALL aufzudröseln, in deinem Fall dann halt 9x ein UNION
https://stackoverflow.com/questions/15184381/mysql-how-to-unpivot-column ...
@MirkoKR
Er hat das Problem, dass Infos, die eigentlich einen eigenen Datensatz bilden sollten, in Spalten abgebildet worden sind.
Wenn du z.B. die Bauteile für einen Kugelschreiber darstellen willst, würde ICH jedes Bauteil als eigenen Artikel nebst Menge (=Datensatz)anlegen über über nur eine zusätzliche Spalte in Beziehung zueinander bringen.
Hier wurden aber alle Bauteile, die für einen Kulli erforderlich sind, in einem gemeinsamen DS untergebracht
Gruß
em-pie
Eigentlich müsstest du mit UNPIVOT arbeiten, was MySQL aber (scheinbar) nicht kann.
Ergo bleibt dir vermutlich nur, die Tabelle mit UNION ALL aufzudröseln, in deinem Fall dann halt 9x ein UNION
https://stackoverflow.com/questions/15184381/mysql-how-to-unpivot-column ...
@MirkoKR
Er hat das Problem, dass Infos, die eigentlich einen eigenen Datensatz bilden sollten, in Spalten abgebildet worden sind.
Wenn du z.B. die Bauteile für einen Kugelschreiber darstellen willst, würde ICH jedes Bauteil als eigenen Artikel nebst Menge (=Datensatz)anlegen über über nur eine zusätzliche Spalte in Beziehung zueinander bringen.
Hier wurden aber alle Bauteile, die für einen Kulli erforderlich sind, in einem gemeinsamen DS untergebracht
Gruß
em-pie
Zitat von @em-pie:
@MirkoKR
Er hat das Problem, dass Infos, die eigentlich einen eigenen Datensatz bilden sollten, in Spalten abgebildet worden sind.
@MirkoKR
Er hat das Problem, dass Infos, die eigentlich einen eigenen Datensatz bilden sollten, in Spalten abgebildet worden sind.
Ja, das hab ich dann auch durchschaut - nur, wie er gefragt hat,verliert er den Bezug zum Rezept - er bräuchte also entweder je Ziel- Datensatz nochmal das "Rezept"-Feld oder eine X-Tabelle
ID - Rezept - ArtikelID
Ich hatte in der Vergangeheit auch schon öfter mit solchen Programmierfehlern zu tun - meist, weil jemand sparsam sein wollte bei Export aus SAP, Oracle oder MS-SQL, etc...
.
Also @Spam30 bleiben die Ziel-Fragen:
.
- GRUPPIEREN nach REZEPT dann fehlt aber je Ziel-Datensatz der Bezug zum REZEPT?
- SUNMIEREN nach ARTIKEL?
- GRUPPIEREN nach ARTIKEL - dann fehlt aber je Ziel-Datensatz der Bezug zum REZEPT?
.
Also, Besten fährst du, wenn du einen Export
bekommen / erzeugen könntest
Daraus könntest du
summieren
Am flexibelsten wärst du aber, wenn dein 8m TE genannter Output zu
gewandelt würde
Dann könntest die Zieldatei gruppieren nach
und darüber gruppieren nach REZEPT oder Artikel und als Gruppierungsergebis die Summe ausgeben...
Allerdings werden dir diese Infos nicht final zum Ziel helfen .. da nusst du dich wohl noch ein wenig mit Google behelfen ..
lD - Rezept - Menge - Produkt
Daraus könntest du
ID - Menge - Produkt
Am flexibelsten wärst du aber, wenn dein 8m TE genannter Output zu
ID - Rezept - Menge - Produkt
gewandelt würde
Dann könntest die Zieldatei gruppieren nach
- Rezept
- Artikel
und darüber gruppieren nach REZEPT oder Artikel und als Gruppierungsergebis die Summe ausgeben...
Allerdings werden dir diese Infos nicht final zum Ziel helfen .. da nusst du dich wohl noch ein wenig mit Google behelfen ..
Du musst die vorhandene Datenbank nicht umstrukturieren um deine hier gestellte Aufgabe zu erfüllen.
Wenn du aber an der Quelle sitzt, solltest du dich damit befassen statt
Produkt1 bis Produkt10
in einen Datensatz zu speichern,
mit X- Tabellen zu arbeiten. weil
du damit beliebig viele Sub-Felder je Hauptdatensatz speichern kannst, die sich auf die übergeordnete ID beziehen
und bei der Abfrage extrem besser skalieren kannst ...
Stichwort : "Normalisierung"
wobei die "Normalisierung" auch oft zu weit geht!
.
.
Wenn du aber an der Quelle sitzt, solltest du dich damit befassen statt
Produkt1 bis Produkt10
in einen Datensatz zu speichern,
mit X- Tabellen zu arbeiten. weil
du damit beliebig viele Sub-Felder je Hauptdatensatz speichern kannst, die sich auf die übergeordnete ID beziehen
und bei der Abfrage extrem besser skalieren kannst ...
Stichwort : "Normalisierung"
wobei die "Normalisierung" auch oft zu weit geht!
.
.