![]() |
Datenbank: mySQL • Version: 5 • Zugriff über: zeos
Kleines Problem bei einer SQL-Gruppierung
Hallo!
In der folgenden Anweisung möchte ich den Umsatz für einen Vertriebspartner ermitteln und gruppiere also zuerst nach "pr.vertrag_id", um die Gesamtsumme für einen Vertrag zu berechnen. Anschließen werden die Aufträge noch nach Vertriebspartner_id gruppiert, um den Umsatz eines Vertriebspartners zu berechnen. Mein Problem ist, dass es in den Joins zu einigen Vertriebspartnern keinen Auftrag gibt. Und wenn ich nach den Aufträgen gruppiere, dann fallen nunmal die Vertriebspartner raus, denen kein Auftrag zugeordnet ist und schließlich erscheinen sie gar nicht. Eine Lösung wäre ja, diese ganze Anweisung mit UNION mit einer zu verbinden, um die Vertriebspartner zu suchen, die gar keine Aufträge geschrieben haben und ich dort manuell einen Umsatz von 0 hinschreibe. Aber geht es nicht auch noch einfacher? Hoffe ihr könnt mir helfen :thumb: Gruß, Andy
SQL-Code:
SELECT `vertriebspartner_id`, sum(`sonderpr`), sum(`summe`)
FROM( SELECT vp.vertriebspartner_id, sum(bestellung.anzahl*bestellung.sonderprovision) `sonderpr`, pr.provisionierungssumme `summe` FROM vertriebspartner vp JOIN provisionen pr ON (pr.vertriebspartner_id = vp.vertriebspartner_id) JOIN bestellte_artikel bestellung ON (bestellung.vertrag_id = pr.vertrag_id) JOIN auftraege auf ON (auf.vertrag_id = pr.vertrag_id) WHERE pr.vertriebspartner_id = pr.provision_von GROUP BY pr.vertrag_id ) x GROUP BY `vertriebspartner_id` |
Re: Kleines Problem bei einer SQL-Gruppierung
Hallo,
schau mal unter ![]() Eventuell hilft die hier Outer Joins weiter, dort ist ein Beispiel beschrieben, dass deinem Problem ähnelt. Könnte das Problem nur mit Oracle-Datenbanken lösen, dort ist aber die Syntax doch ein bisserl anders. Stephan |
Re: Kleines Problem bei einer SQL-Gruppierung
Hallo sunnyandy,
schau dir mal LEFT-JOINs an...
SQL-Code:
Gruss
SELECT vertriebspartner_id, SUM(sonderpr), SUM(summe)
FROM(SELECT vp.vertriebspartner_id, SUM(bestellung.anzahl * bestellung.sonderprovision) sonderpr, pr.provisionierungssumme summe FROM vertriebspartner vp INNER JOIN provisionen pr ON pr.vertriebspartner_id = vp.vertriebspartner_id INNER JOIN bestellte_artikel bestellung ON bestellung.vertrag_id = pr.vertrag_id LEFT JOIN auftraege auf ON auf.vertrag_id = pr.vertrag_id WHERE pr.vertriebspartner_id = pr.provision_von GROUP BY pr.vertrag_id) x GROUP BY vertriebspartner_id Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz