Summen im SQL Statement

13/02/2008 - 17:45 von Markus Goeldi | Report spam
Hallo NG

Ich möchte drei Tabellen verknüpfen.
Tabellen: 'PRODUKT' / 'EINGANG' / 'AUSGANG'

Relationen:

'PRODUKT' (id)
- A

'EINGANG' (produkt_id / betrag)
- A / 10
- A / 12
- A / 20

'AUSGANG' (produkt_id / betrag)
- A / 5
- A / 8

mit:
SELECT p.id, SUM(e.betrag), SUM(a.betrag)
FROM produkt p
LEFT OUTER JOIN eingang e ON p.id = e.produkt_id
LEFT OUTER JOIN ausgang a ON p.id = a.produkt_id
GROUP BY p.id

erhalte ich:
A / 84 / 39

Wie bekomme ich es hin, dass sich das Resultat nicht ausmultipliziert?

Gruss Markus
 

Lesen sie die antworten

#1 Stefan Hoffmann
13/02/2008 - 17:56 | Warnen spam
hallo Markus,

Markus Goeldi schrieb:
SELECT p.id, SUM(e.betrag), SUM(a.betrag)
FROM produkt p
LEFT OUTER JOIN eingang e ON p.id = e.produkt_id
LEFT OUTER JOIN ausgang a ON p.id = a.produkt_id
GROUP BY p.id
erhalte ich:
A / 84 / 39
Wie bekomme ich es hin, dass sich das Resultat nicht ausmultipliziert?


Imho gar nicht.

SELECT
id,
(SELECT Sum(betrag)
FROM eingang
WHERE eingang.produkt_id = produkt.id) AS e,
(SELECT Sum(betrag)
FROM ausgang
WHERE ausgang.produkt_id = produkt.id) AS a
FROM produkt


mfG

Ähnliche fragen