AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sql: Zweimal Gruppieren klappt nicht ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Sql: Zweimal Gruppieren klappt nicht ?!

Ein Thema von sunnyandy · begonnen am 8. Sep 2006 · letzter Beitrag vom 9. Sep 2006
Antwort Antwort
sunnyandy

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

Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 8. Sep 2006, 23:36
Datenbank: MySql • Version: 5 • Zugriff über: Zeos
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!
  Mit Zitat antworten Zitat
omata

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 8. Sep 2006, 23:43
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
  Mit Zitat antworten Zitat
sunnyandy

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 9. Sep 2006, 00:20
Jawoll! Genau das habe ich gesucht!
Danke!

Aber wozu ist das x da ? Das habe ich noch nie gesehen...
  Mit Zitat antworten Zitat
omata

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 9. Sep 2006, 00:25
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
  Mit Zitat antworten Zitat
sunnyandy

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 9. Sep 2006, 00:28
Achso ok! Hab ich verstanden
Gruß zurück!
Andy
  Mit Zitat antworten Zitat
sunnyandy

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 9. Sep 2006, 01:01
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??

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

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

Re: Sql: Zweimal Gruppieren klappt nicht ?!

  Alt 9. Sep 2006, 01:07
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
  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 06:35 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