Axel Richter: Anzahl der der Einträge eines Lieferanten

Beitrag lesen

Hallo,

möglicherweise sehe ich den Wald vor lauter Bäumen nicht..., also:
es gibt eine tabelle mit lieferanten und artikeln

L  Artikel

1  graukappe
1  rotkappe
2  grauhut
2  rothut
2  grünhut
2  blauhut
3  grünmütze
3  graumütze

Die Tabelle hat also kein eindeutiges Feld? L und Artikel können jeweils beliebig oft und in beliebiger Kombination vorkommen?

Die SQL Query soll das hier ergeben (sortiert nach Anzahl der Artikel pro Lieferant):

L  Artikel    Anzahl

2  grauhut    4
2  rothut     4
2  grünhut    4
2  blauhut    4
1  graukappe  2
1  rotkappe   2
3  grünmütze  2
3  graumütze  2

Das geht nicht mit einer Query, weil die "Datensätze" im Resultat keinen direkten Bezug zu Tabelle mehr haben. Im Prinzip stellt Dein Resultat die Tabelle, sprich jeden Datensatz einzeln) nur anders sortiert dar und fügt jedem Datensatz die Anzahl L gruppiert nach L an.

So etwas kann man mit Hilfe eines Self-JOINs machen.

SELECT Tabelle.L AS Lief, Tabelle.Artikel, Tabelle2.Anzahl
FROM Tabelle INNER JOIN (Select L, count(*) as Anzahl from Tabelle group by L) as Tabelle2 on Tabelle.L = Tabelle2.L order by Anzahl DESC;

Ob MySQL so etwas kann, weiß ich nicht.

viele Grüße

Axel