Forum: SQL |
Thema:
Re: doppelte Daten ermitteln |
Von:
Peter Knoll (
31.08.2005 00:27) |
Hi,
der Syntax sieht für mich korrekt aus. Diese Abfrage summiert die Menge pro
- Ware
- Einheit
- Gericht und
- Einkaufsliste
Kann es sein, dass dein Problem eher ein logisches ist? Eine Ware pro Gericht zu summieren macht wenig Sinn, da diese Ware pro Gericht wahrscheinlich sowieso nur einmal vorkommt, oder?
Ich nehme an, du willst pro Einkaufsliste summieren, oder? Wenn ja, dann lass den Gerichtsnamen weg, z.B.:
SELECT el.Waren, e.Einheit, SUM(z.Menge) AS Expr1, el.EinkaufslisteID
FROM (((Zutaten z LEFT OUTER JOIN
Gericht g ON g.GerichtID = z.GerichtID) LEFT OUTER JOIN
Einheit e ON e.EinheitID = z.EinheitID) LEFT OUTER JOIN
Einkaufsliste el ON el.EinkaufslisteID = z.Zutat)
WHERE (z.GerichtID IN (39, 40, 41, 42, 43, 45, 46))
GROUP BY el.Waren, e.Einheit, el.EinkaufslisteID
... oder alle Waren über alle Einkaufslisten summieren? Dann z.B. so:
SELECT el.Waren, e.Einheit, SUM(z.Menge) AS Expr1 FROM (((Zutaten z LEFT OUTER JOIN
Gericht g ON g.GerichtID = z.GerichtID) LEFT OUTER JOIN
Einheit e ON e.EinheitID = z.EinheitID) LEFT OUTER JOIN
Einkaufsliste el ON el.EinkaufslisteID = z.Zutat)
WHERE (z.GerichtID IN (39, 40, 41, 42, 43, 45, 46))
GROUP BY el.Waren, e.Einheit
Vielleicht helfen dir meine Denkanstöße weiter.
Gruß, Peter
Betreff |
Von |
Datum |
|
  |
Re: doppelte Daten ermitteln
Ja, ich denke auch, dass es logisches Problem ist!<br><br>Alle Felder, die Du angibst und die NICHT aggregiert werden (zB. mit SUM) - bilden DEN Schlüssel bei GROUP oder DISTINCT!<br><br>Beispiel (bel.... |
 |
 |
 |
|
|
Torsten
Arlt
|
01.09.2005 08:00 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!