Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sql: Zweimal Gruppieren klappt nicht ?! (https://www.delphipraxis.net/76742-sql-zweimal-gruppieren-klappt-nicht.html)

sunnyandy 8. Sep 2006 22:36

Datenbank: MySql • Version: 5 • Zugriff über: Zeos

Sql: Zweimal Gruppieren klappt nicht ?!
 
SQL-Code:
SELECT geworbener_id, vorname, nachname, sum(preis*anzahl)
FROM sponsoren
JOIN vertriebspartner ON (vertriebspartner.vertriebspartner_id = sponsoren.geworbener_id)
JOIN auftraege USING (vertriebspartner_id)
JOIN bestellte_artikel USING (vertrag_id)
GROUP BY vertrag_id, geworbener_id
Das ist meine Anfrage. Möchte zuerst nach Vertrag_id sortieren und anschließen nach geworbener_id und somit sum(preis*anzahl) nochmal aufsummieren.
Geht das überhaupt? sum(sum(preis*anzahl)) nimmt er nämlich nicht an...

Es kommen am Ende auf jeden Fall zwei oder mehr gleiche geworbene_id-Felder, also danach wird nicht gruppiert... Könnt ihr mir helfen?
Danke im Voraus!

omata 8. Sep 2006 22:43

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Hallo sunnyandy,

meinst du das vielleicht so...

SQL-Code:
SELECT geworbener_id, vorname, nachname, SUM(summe) summe
FROM (SELECT geworbener_id, vorname, nachname, SUM(preis * anzahl) summe
      FROM sponsoren
      JOIN vertriebspartner
        ON (vertriebspartner.vertriebspartner_id = sponsoren.geworbener_id)
      JOIN auftraege USING (vertriebspartner_id)
      JOIN bestellte_artikel USING (vertrag_id)
      GROUP BY vertrag_id, geworbener_id, vorname, nachname) x
GROUP BY geworbener_id, vorname, nachname
Gruss
Thorsten

sunnyandy 8. Sep 2006 23:20

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Jawoll! Genau das habe ich gesucht! :hello:
Danke!

Aber wozu ist das x da ? Das habe ich noch nie gesehen...

omata 8. Sep 2006 23:25

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Schön das es dir geholfen hat. Das X ist einfach ein Prefix für die Unterabfrage. Ohne gibt es einen Fehler. Was du da wählst ist völlig egal, ich nehme da immer gern ein X.

Gruss
Thorsten

sunnyandy 8. Sep 2006 23:28

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Achso ok! Hab ich verstanden :-)
Gruß zurück!
Andy

sunnyandy 9. Sep 2006 00:01

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Habe noch eine Frage:
Gruppiere die einfache obere Select Anweisung ja nach Vertrag:

SQL-Code:
SELECT geworbener_id, vorname, nachname, sum(preis*anzahl)
FROM sponsoren
JOIN vertriebspartner ON (vertriebspartner.vertriebspartner_id = sponsoren.geworbener_id)
JOIN auftraege USING (vertriebspartner_id)
JOIN bestellte_artikel USING (vertrag_id)
GROUP BY vertrag_id
Wenn es nun zu einigen Vertriebspartnern keinen Vertrag gibt, hilft mir auch kein OUTER JOIN, um sie ebenfalls anzuzeigen, da ich ja nach Vertrag gruppiere. Gibt es da eine Möglichkeit, sie auf einfache Art anzuzeigen?? :bouncing4:

Mir fällt da notfalls ein, diese Suche mittels UNION mit einer anderen SELECT Anfrage zusammentue, und dort diejenigen ohne Verträge suche...

omata 9. Sep 2006 00:07

Re: Sql: Zweimal Gruppieren klappt nicht ?!
 
Ich kenne dein Datenbankmodell ja nicht. Aber vielleicht so...

SQL-Code:
SELECT geworbener_id, vorname, nachname, SUM(preis*anzahl)
FROM vertriebspartner v
LEFT JOIN sponsoren s
  ON v.vertriebspartner_id = s.geworbener_id
LEFT JOIN auftraege a
  ON v.vertriebspartner_id = a.vertriebspartner_id
LEFT JOIN bestellte_artikel b
  ON a.vertrag_id = b.vertrag_id
GROUP BY vertrag_id
Gruss
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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