kann man addieren (sum) ohne group by?
Charly
- datenbank
Wenn ich eine Umsatzabfrage starte werden nicht die richtigen ergebnise gezeigt! habe eine Tabelle mit drei Filalen und eine Verkaufstabelle! Wenn ich mir die Umsätze pro Tag und pro Filale anzeigen lassen möchte und nach Verkaufsdatum gruppiere werden alle Umsätze an diesem Tag auf die erste Filiale zugerechnet.
select Filial_Stammdaten.Filialname, sum(Artikel_Verkauf.Menge) as Menge, sum(Artikel_Verkauf.VK_erzielt) as Umsatz, Artikel_Verkauf.Verkaufsdatum from Artikel_Verkauf, Filial_Stammdaten where Artikel_Verkauf.Filiale = Filial_Stammdaten.Filiale group by Artikel_Verkauf.Verkaufsdatum;
Hat Jemand ne idee?
Ist wichtig
Charly
Hi Charly,
Wenn ich eine Umsatzabfrage starte werden nicht die richtigen ergebnise gezeigt!
Tja, das scheint an Deiner fehlerhaften Abfrage zu liegen. ;-)
Wenn ich mir die Umsätze pro Tag und pro Filale anzeigen lassen möchte
und nach Verkaufsdatum gruppiere werden alle Umsätze an diesem Tag auf
die erste Filiale zugerechnet.select Filial_Stammdaten.Filialname,
sum(Artikel_Verkauf.Menge) as Menge,
sum(Artikel_Verkauf.VK_erzielt) as Umsatz,
Artikel_Verkauf.Verkaufsdatum
from Artikel_Verkauf,
Filial_Stammdaten
where Artikel_Verkauf.Filiale = Filial_Stammdaten.Filiale
group by Artikel_Verkauf.Verkaufsdatum;
Sieht Dein Statement bei entsprechender Formatierung nicht gleich viel lesbarer aus?
Hat Jemand ne idee?
Ich sehe nicht, wo Du "pro Tag und Filiale" rechnest - Du rechnest nur "pro Tag" und Dein Datenbanksystem würfelt Dir irgend eine Filiale aus (statt Dein Statement als fehlerhaft zurück zu weisen, wie ein "ordentliches" RDBMS das tun würde).
Denn _alle_ Felder der SELECT-Liste müssen entweder Aggregatfunktionen oder Gruppierungsspalten sein. Ansonsten bekommst Du Ergebnisse, wie Du sie gerade erlebst ...
Ist wichtig
Ach ... _darauf_ wäre ich jetzt irgendwie _fast_ nicht gekommen.
Viele Grüße
Michael