Group By nicht alle Spalten

Arek31

Neuer Benutzer
Beiträge
2
Hallo,

ich habe folgende Abfrage:


select A.Artbezeichnung, A.ArtGruppe, AVG(A.ArtVKPreis) Verkaufspreis

from tblArtikel A

Group By A.ArtGruppe, A.ArtBezeichnung

order by Verkaufspreis

Ich möchte gerne nur nach A.ArtGruppe gruppieren. In glaube, um das Problem zu lösen, muss ich eine Unterabfrage einbauen, habe aber keine Idee wie.

Könnte mir jemand damit helfen?
 
Werbung:
Du musst einfach nur A.Artbezeichnung sowohl aus dem SELECT Teil als auch aus dem GROUP BY Teil streichen.
 
Ich möchte aber, dass die Bezeichnung mitangezeigt wird. Das ist mein Problem an der Geschichte.

Du könntest MySQL nehmen, das hält sich nicht an die SQL-Norm und liefert Dir irgend etwas. Oder Du akzeptierst, daß es unlogisch ist, was Du willst. Welche A.Artbezeichnung, falls es mehrere gibt, soll angezeigt werden?
 
Ist schon richtig es muss ja irgendeinem Sinn folgen, welche ArtBezeichnung nun angezeigt wird und welche nicht. Du kannst natürlich noch nachträglich Daten dazuholen.
Code:
SELECT    t1.ArtGruppe,
        t1.Verkaufspreis,
        t2.Artbezeichnung
FROM    (
SELECT    A.ArtGruppe,
        avg(A.ArtVKPreis) AS Verkaufspreis
FROM    tblArtikel A
GROUP BY A.ArtGruppe
) t1
LEFT JOIN (
SELECT    A.Artbezeichnung,
        A.ArtGruppe
FROM    tblArtikel A
GROUP BY A.ArtGruppe, A.ArtBezeichnung
) t2
ON        t1.ArtGruppe = t2.ArtGruppe
ORDER BY t1.Verkaufspreis,t2.Artbezeichnung
So z.B. würde die Summe der ArtGruppe mit jeder darin vorkommenden Artbezeichnung kombiniert werden. Macht das Sinn? k.A.
 
Werbung:
select MIN(A.Artbezeichnung), A.ArtGruppe, AVG(A.ArtVKPreis) Verkaufspreis

from tblArtikel A

Group By A.ArtGruppe

order by Verkaufspreis


So sollte dir nach deiner Sortierung die erste Artikelbezeichnung ausgegeben werden. Schließe mich ansonsten an, k.A. inwiefern das für dich Sinn macht.
 
Zurück
Oben