spam30
Goto Top

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

Content-Key: 1750784834

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

Printed on: April 20, 2024 at 01:04 o'clock

Member: MirkoKR
MirkoKR Jan 22, 2022 updated at 18:57:49 (UTC)
Goto Top
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 face-wink..

.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
wo offensichtlich "Rezept" entfällt.
Member: em-pie
em-pie Jan 22, 2022 at 18:57:20 (UTC)
Goto Top
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
Member: MirkoKR
MirkoKR Jan 22, 2022 at 19:06:38 (UTC)
Goto Top
Zitat von @em-pie:

@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...

.
Member: em-pie
em-pie Jan 22, 2022 at 19:09:02 (UTC)
Goto Top
Ah, das stimmt, Seine Ur-ID geht hopps…
Naja, kann man ja umgehen. „Spannend“ wird es, wenn die Struktur beibehalten werden soll.

Dann braucht es a) die UrID und n) die ID des übergeordneten Artikels…
Member: MirkoKR
MirkoKR Jan 22, 2022 at 19:41:57 (UTC)
Goto Top
Wobei die Überschrift "Gruppieren" auch bedeuten könnte, das er je Artikel eine Summe bilden will ??
Member: MirkoKR
MirkoKR Jan 22, 2022 updated at 20:07:17 (UTC)
Goto Top
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?

.
Member: Spam30
Spam30 Jan 22, 2022 updated at 20:38:40 (UTC)
Goto Top
Das ging hier aber schnell.
Danke schon mal für die vielen Beiträge.

Tut mir leid wenn die Frage wirr klingt. Deshalb hab ich es auch versucht so gut wie möglich im Beispiel zu erklären.

Ziel ist es herrauszufinden welche Summe ich vom jeweiligen Artikel benötige wenn ich x Rezepte ausgewählt habe. (Eine Art Bestelliste für die nächsten Rezepte)
Wobei jeder Artikel theoretisch in jedem Rezept vorkommen kann.
Member: MirkoKR
MirkoKR Jan 22, 2022 at 20:59:19 (UTC)
Goto Top
Also, Besten fährst du, wenn du einen Export
lD - Rezept - Menge -  Produkt
bekommen / erzeugen könntest

Daraus könntest du

ID - Menge - Produkt
summieren

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 .. face-wink
Member: Spam30
Spam30 Jan 22, 2022 at 21:18:56 (UTC)
Goto Top
Ok dann werde ich mal schauen, wie ich die vorhandene Datenbank umstrukturieren kann.

Vielen Dank an euch alle.
Member: MirkoKR
MirkoKR Jan 22, 2022 at 21:38:41 (UTC)
Goto Top
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!

.

.