ukulele
Datenbank-Guru
- Beiträge
- 5.306
In etwa so:
Im inneren Select wird nur gejoint und alle Datensätze werden zurück gegeben. Der Äußere gruppiert und aggregiert dann die Daten, in diesem Fall nur Menge. Wenn du jetzt eine Spalte wie BEZEICH raus läßt (sowohl aus dem Select als auch aus dem GROUP BY) wird die Summe von Menge für alle BEZEICH in einer Zahl ausgegeben, läßt du es drin wird für jede BEZEICH eine eigene Menge ermittelt. Natürlich kannst du auch mehrere Spalten mit Aggregatfunktionen (min(), max(), avg,(), etc.) ausgeben, das macht aber eigentlich nur bei Zahlen Sinn.
Code:
Select
x.ARTIKEL
,x.AUFTRAG
,x.GESCH_BER
,x.KENN_RE
,x.BEZEICH
,x.AP_Jahr
,sum(x.Menge) AS Menge
FROM (
select
ap.AUFTRAG
,ap.MENGE
,ap.ARTIKEL
,ap.KENN_RE
,Year(ap.DAT_NEU) as AP_Jahr
,ap.BEZEICH
,ak.GESCH_BER
FROM KAVV0101 as ap
inner join KAVV000 as ak on ak.AUFTRAG = ap.AUFTRAG
) as x
where x.ARTIKEL > '0' and x.KENN_RE = 'F' and x.ARTIKEL NOT LIKE 'CS%' and x.ARTIKEL NOT LIKE 'MV%'
group by x.ARTIKEL,x.AUFTRAG,x.GESCH_BER,x.KENN_RE,x.BEZEICH,x.AP_Jahr
order by x.ARTIKEL