hi Knud,
Das Problem ist, dass ich in einer Tabelle in einem Feld 4stellige Artikelnummern durch Komma getrennt drinstehen habe.
der aufbau deiner tabelle ist meiner meinung nicht so geschickt. deine tabelle widerspricht der 1. Normalform. das ist nun kein weltuntergang, aber ich würde dir raten, für jede artikelnummer einen extra datensatz zu benutzen.
Tja, ich weiß, die Struktur ist nicht so dolle und es wäre sinnvol gewesen, für jede Artikelnummer einen Satz zu nehmen.
Aber so ist das mit gewachsenen Strukturen, wenn man nochmal von vorne anfangen könnte, würde man es anders machen.
Jetzt muss ich erstmal die Struktur so hinnehmen.
das hört sich ein wenig nach einer tabelle für eine bestellung eines kunden an und soll alle artikel auflisten, die er bestellt hat.
Haarscharf :) Es soll eine Artikel-Hitliste ergeben.
Die Kunden sind Techniker und die Artikel Ersatzteile. Also eine TopTen-Liste der am häufigsten benötigten Ersatzteile.
Jetzt möchte ich eine Abfrage generieren, die mir eine Liste der vorkommenden Artikelnummern bringt, sortiert nach der Anzahl.
gehen wir mal weiter von meiner anahme aus, würde du nun die tabelle bestellung nach der kundennummer grouppieren (group by) und eine aggregatfunktion anwenden, die die anzahl der artikel zählt, nämlich sum (artikelnummer)
Einfache count(*) ... group by Abfragen bekomme ich auch hin ;-), aber wie gesagt, leider kann ich das ja nicht anwenden, da ich die Struktur der Tabelle nicht anpacken kann.
Es sei denn ich würde erst eine Dummy-Tabelle mit den Werten erzeugen und darüber dann wieder die Abfrage laufen lassen. Das ist mein momentaner Lösungsgedanke.
Gibt es eine Möglichkeit innerhalb der Abfrage das Artikel-Feld aufzusplitten und die Einzelteile zu zählen?
das würde auch gehen, halte ich aber für keine gute lösung. ob es direkt mit mysql geht, will ich mal offen lassen, aber mit mit php oder perl klappt es
Php wäre auch ganz gut, aber ich hab da meine Probleme wie ich das lösen könnte.
Ich müsste wohl ein zweidimensionales Array aufbauen
array[x][1] = Artikelnummer und
array[x][2] = Menge
und anschließend das Array wieder der Größe nach nach array[x][2] sortieren.
Alles soweit theoretisch, da ich mit Arrays innerhalb von PHP nicht sooo firm bin.
Gruß und Dank,
Knud