AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kleines Problem bei einer SQL-Gruppierung
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Problem bei einer SQL-Gruppierung

Ein Thema von sunnyandy · begonnen am 24. Okt 2006 · letzter Beitrag vom 24. Okt 2006
Antwort Antwort
sunnyandy

Registriert seit: 24. Feb 2006
49 Beiträge
 
#1

Kleines Problem bei einer SQL-Gruppierung

  Alt 24. Okt 2006, 11:22
Datenbank: mySQL • Version: 5 • Zugriff über: zeos
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
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`
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Kleines Problem bei einer SQL-Gruppierung

  Alt 24. Okt 2006, 12:39
Hallo,

schau mal unter http://www.little-idiot.de/mysql/mysql-118.html.
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
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Kleines Problem bei einer SQL-Gruppierung

  Alt 24. Okt 2006, 21:16
Hallo sunnyandy,

schau dir mal LEFT-JOINs an...

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
     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
Gruss
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz