Charly: kann man addieren (sum) ohne group by?

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

  1. 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.