Hi!
Artikelnr | Artikel | Preis
1 | ArtikelX| 13
2 | ArtikelY| 18
Ich möchste nun, dass beide Artikel ausgegeben werden und gleichzeit noch die Summe beider Artikel erreichnet wird
Artikel | Preis | GesamtArtikelX| 13 | 31
ArtikelY| 18 | 31
Mitten in der Ausgabe und in jeder Zeile soll die Summe über alles stehen? Dann ermittle sie zuerst, leg das Ergebnis (noch in MySQL) in einer benutzerdefinierten Variable ab. Diese kannst du dann in die SELECT-Klausel der eigentlichen Abfrage einbinden.
Wenn ich bei der Ausgabe die Spalte Preis summiere, wird nur noch eine Reihe ausgegeben.
SELECT artikel, preis, SUM(preis) FROM tabelle
Logisch, Aggregatfunktionen fassen die Ergebnismenge zu einer Zeile zusammen.
Wenn ich zusätzlich nach Artikelnr gruppiere, werden zwar beide Reihen ausgegeben, jedoch wird die Summe nicht korrekt ausgegeben.
SELECT artikel, preis, SUM(preis) FROM tabelle GROUP BY artikelnr
Es wird dann pro Gruppe summiert. Wenn du noch ein Endergebnis als extra Zeile haben willst, dann gibt es da ein WITH ROLLUP (oder so ähnlich).
Allerdings funktioniert dein Statement so nur in MySQL, denn wenn man gruppiert, ist nicht eindeutig zu bestimmen, welcher Wert für eine Spalte genommen werden soll, nach der nicht gruppiert wird, in deinem Fall der Preis. MySQL lässt das zwar zu, nimmt dann aber einen zufälligen Wert. Der ist nur dann der von dir gewünschte, wenn in deinen Daten pro Gruppe nur eindeutige Werte zu ermitteln sind.
Lo!