Announcement

Collapse
No announcement yet.

SUM() funktioniert nicht.. Oder doch Denkfehler?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SUM() funktioniert nicht.. Oder doch Denkfehler?

    Hallo Miteinander!

    Ich bin mir einen neuen Report am erstellen, funktioniert auch alles tiptop.. Naja, fast alles. Zuerst eine kleine Beschreibung der Situation:

    Bei dem Report handelt es sich um einen Rohertragreport von einem Restaurant. Angezeigt werden die Artikelnummer (ArtNr), die Bezeichnung des Artikels (BonTxt), die Menge (Menge), der Einkaufspreis (Ek), der Umsatz inkl. Mwst (Umsatz), den Umsatz exkl. Mwst (Netto).

    Jetzt kommt der Kellner an die Kasse und tippt 1x Coca Cola. Dann geht er und tippt später wieder 1x Coca Cola.
    Bei dieser Situation rechnet der Report die Menge und alles andere schön zusammen.

    Tippt der Kellner allerdings 1x Coca Cola und dann später 2x Coca Cola, dann erscheint auf dem Report der Artikel Coca Cola zweimal, einmal mit der Menge 1 und einmal mit der Menge 2. Kann mir jemand sagen wieso dies nicht summiert wird zur Menge 3?

    Hier ist noch mein Query:

    Code:
    SELECT
    ArtNr, 
    BuchPeriode, 
    SUM(VkBrutto * Menge) AS Umsatz, 
    SUM(Menge) AS Menge, 
    SUM(Ek) AS Ek, 
    BonTxt, 
    MwstSatz, 
    SUM((Vk - Ek) / (100 + MwstSatz) * 100) AS Netto
    
    FROM Statistik
    
    WHERE  BuchPeriode >= :DateEditVon
    AND  BuchPeriode <= :DateEditBis
    
    GROUP BY ArtNr, BuchPeriode, BonTxt, MwstSatz, Vk, Ek, Menge
    Ich hoffe jemand kann mir helfen.. Hab ich was nicht beachtet im Query? Oder ist es einfach falsch, so wie ich es gemacht habe?

    Vielen Dank bereits für Eure Hilfe!

    lg

  • #2
    Hallo Immi,

    weil Du auch nach "Menge" gruppierst (und noch nach diversem anderen).

    Lass mal Menge weg (und nach meiner Ansicht auch Vk, EK).
    Was Du nur aggregierst, brauchst Du nicht noch gruppieren, das macht keinen Sinn.

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo O.

      Hab's jetzt so gemacht wie du gesagt hast und so funktioniert es einwandfrei. Danke die viele Male für deine Hilfe!

      lg

      Comment


      • #4
        Manmanman, hab's so gemacht wie du gesagt hast und funktionierte auch einwandfrei.. Doch jetzt ist es wieder nicht gruppiert?!

        Hab ich wieder was falsch gemacht? Hier nochmal der aktuelle Query:

        Code:
        SELECT     ArtNr, 
                   BuchPeriode, 
                   SUM(VkBrutto * Menge) AS Umsatz, 
                   SUM(Menge) AS Menge, 
                   BonTxt, 
                   MwstSatz, 
                   SUM((Vk - Ek) / (100 + MwstSatz) * 100) AS DB1,        
                   SUM(Vk / (100 + MwstSatz) * 100) AS Netto               
        
          FROM     Statistik AS d
         WHERE     BuchPeriode >= :DateEditVon
           AND     BuchPeriode <= :DateEditBis
           AND     Betr = :dBetrieb                                                       
           AND     Vk > 0
           AND     VkBrutto > 0                                           
         GROUP BY  ArtNr, 
                   BuchPeriode, 
                   BonTxt, 
                   MwstSatz                
         ORDER BY  ArtNr
        Dieser Query liefert folgendes Resultat:

        Code:
        7105	31.01.2008 00:00:00	9	1	1dl Poggio ai Ginepr	7.6	6.04089219330855	8.3643122676579935
        7107	12.01.2008 00:00:00	9	1	1dl Fabelhaft	7.6	6.04089219330855	8.3643122676579935
        7120	31.01.2008 00:00:00	9.5	1	1 dl Casa lo Alto	7.6	6.04089219330855	8.828996282527882
        13000	31.01.2008 00:00:00	9.5	1	Tellerchen	7.6	6.2267657992565066	8.828996282527882
        13001	31.01.2008 00:00:00	15	1	Teller v. Buffet	7.6	8.5501858736059475	13.940520446096654
        13002	31.01.2008 00:00:00	38	2	Tomaten/Mozzarella	7.6	23.791821561338292	35.315985130111528
        13012	31.01.2008 00:00:00	33	1	Gr. Geräucherter Red	7.6	21.840148698884761	30.669144981412643
        13018	31.01.2008 00:00:00	33	1	Gr.Riesencrevetten	7.6	21.840148698884761	30.669144981412643
        13019	31.01.2008 00:00:00	25	1	KlCrevetten-Schmette	7.6	16.635687732342006	23.234200743494423
        13021	31.01.2008 00:00:00	12	1	Nüsslisalat mit Ei	7.6	9.014869888475836	11.152416356877325
        13022	31.01.2008 00:00:00	21	1	kl. Blattsalat Eglif	7.6	13.197026022304833	19.516728624535318
        13024	31.01.2008 00:00:00	27	1	Gr. Blattsalat Eglif	7.6	17.657992565055764	25.092936802973981
        15300	31.12.2007 00:00:00	10	2	Room Charge	7.6	9.29368029739777	9.29368029739777
        15300	01.01.2008 00:00:00	5	1	Room Charge	7.6	4.6468401486988853	4.6468401486988853
        15300	31.01.2008 00:00:00	45	9	Room Charge	7.6	41.821561338289968	41.821561338289968
        15606	31.01.2008 00:00:00	18	2	Rührei	7.6	16.171003717472118	16.728624535315987
        Und mein Ziel wäre es, das jede Artikel Nummer (Erste Spalte) nur einmal vorkommt, eben gruppiert..

        lg

        Comment


        • #5
          Hallo Immi,

          das einzelne Artikelnummern mehrfach auftauchen liegt wohl daran, dass diese nicht immer die gleiche BuchPeriode, BonTxt oder MwstSatz haben.

          Da Du diese 3 Spalten ausgeben willst musst Du auch danach gruppieren. Wenn dann aber Artikel xyz mit BonTxt 'ABC' und BonTxt 'FGH' vorhanden ist, muss der Artikel mindestens zweimal auftauchen.

          Um sicher die gesamte Summe für jede ArtikelNr zu bekommen darf auch nur die ArtNr gruppiert und ausgegeben werden, zusammen mit der aggregierten Summe.

          Gruss, Bruno

          Comment

          Working...
          X