Michael Schröpl: kann man addieren (sum) ohne group by?

Beitrag lesen

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

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.