Jump to content

Probleme mit SUM und GROUP


Direkt zur Lösung Gelöst von Martin67,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo in die Runde,

 

die Profis werden sicherlich die Hände über dem Kopf zusammenschlagen, ich mach das noch nicht so lange und habe nur rudimentäre SQL Kentnisse. Ich muss für unsere Firma diverse Abfragen erstellen und eine davon treibt mich in den Wahnsinn. Da brauche ich eine Idee, wie das umzusetzen ist.

 

Das ist meine Abfrage:

 

SELECT

W.Bezeichnung AS Warengruppe,

SUM(ISNULL(RP.SummeKalk,0)) AS Rechnungen, -- Rechnungspositionen summieren

 

FROM RechKopf RK

INNER JOIN RechPos RP ON RP.RechKopfI3D = RK.I3D

INNER JOIN Artik A ON A.I3D = RP.ArtikelI3D

INNER JOIN WAREN W ON W.Warengruppe = A.Warengruppe

 

WHERE RK.KundenID =14521

Group By W.Bezeichnung

 

Ergebnis sieht wie im Anhang aus. Ich muss zwingend den 'Kontingentausgleichsartikel' von der 'Dienstleistung' in Abzug bringen. Die Zeile Dienstleistung soll also nur noch 7159-2611 = 4548 sein.

Am liebsten würde ich in die SUM Formel eine Bedingung einbauen, dass dazu führt das beide Zeilen nur in einer Zeile 'Dienstleistung' aufsummiert werden.

 

 

Ich hoffe, ich habe für einen Gedankenanstoß genug Infos geliefert.

post-70920-0-65203100-1440845525_thumb.png

Link zu diesem Kommentar
  • Beste Lösung

Jetzt wäre es natürlich nocht gut, wenn Du die vollständige Lösung posten würdest, Danke. ;)

 

Da hast du wohl recht. Ich hatte mich bei dem Problem zu sehr an dem Problem selbst gehangen und nicht die Entstehung des Problems betrachtet.

Grob gesagt habe ich alle Rechnungspositionen stumpf aufsummiert und bei näherer Betrachtung der Daten gibt es Rechnungen bei denen Dienstleistung auf einer Rechnung gebucht wurde, die durch negative Kontingentausgleichsartikel in gleicher Höhe den Endbetrag der Rechnung auf 0 gedrückt haben. 

 

Ich musste nur noch die Positionen summieren, bei denen der Rechnungsbetrag nicht 0 ist. Das Feld steht in der Tabelle RechKopf und die Spalte heißt 'netto'.

Durch einfaches Erweitern der Bedingung der WHERE Klausel war der Spuk vorbei. Ich setze mich morgen nochmal intensiv ran und rechne händisch ein paar Belege nach um das Ergebnis zu kontrollieren. In der Datenbank ist nichts dokumentiert, jeder Programmierer hat immer nur Felder hinzugefügt und dadurch macht das besonders viel Spaß die richtigen Felder zu suchen. 

 

WHERE RK.KundenID =14521

AND RK.netto <> 0  

 

VG Martin

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...