Martin67 0 Geschrieben 29. August 2015 Melden Teilen Geschrieben 29. August 2015 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. Zitieren Link zu diesem Kommentar
Martin67 0 Geschrieben 30. August 2015 Autor Melden Teilen Geschrieben 30. August 2015 Ich konnte die Daten noch weiter einschränken und damit das gewünschte Ergebnis erzielen. Ist mir erst heute Nacht eingefallen. Danke. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 30. August 2015 Melden Teilen Geschrieben 30. August 2015 Ich konnte die Daten noch weiter einschränken und damit das gewünschte Ergebnis erzielen. Ist mir erst heute Nacht eingefallen. Jetzt wäre es natürlich nocht gut, wenn Du die vollständige Lösung posten würdest, Danke. ;) Zitieren Link zu diesem Kommentar
Beste Lösung Martin67 0 Geschrieben 30. August 2015 Autor Beste Lösung Melden Teilen Geschrieben 30. August 2015 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.