• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zwei spalten mit mysql SUM addierten ergebnisse wiederum addieren?

ewrson

Neues Mitglied
Hallo,

ich versuche schon den ganzen tag zwei, die ich mit SUM erstellt habe, tabellen über meine mySQL datenbank zu addieren.

Code:
SELECT re_id,

(SELECT SUM(re_price) AS sum1 FROM rechnung WHERE rech_ext = 0) AS sum1,
(SELECT SUM(re_price*re_stunden) AS sum2 FROM rechnung WHERE rech_ext = 1) AS sum2

FROM rechnung
WHERE re_date >= '1330556401'
GROUP BY re_id

Sprich ich suche einen ansatz bzw. lösung wie ich jetzt die beiden sum1+sum2 schon über die datenbank addieren kann :-?
bin für jede hilfe dankbar.

Gruß
 
Werbung:
Mmmh.

Code:
select re_id,

(SELECT SUM(re_price) AS sum1 FROM rechnung WHERE rech_ext = 0) AS sum1,
(SELECT SUM(re_price*re_stunden) AS sum2 FROM rechnung WHERE rech_ext = 1) AS sum2,
(SELECT SUM(re_price) AS sum1 FROM rechnung WHERE rech_ext = 0) + (SELECT SUM(re_price*re_stunden) AS sum2 FROM rechnung WHERE rech_ext = 1) as summe

FROM rechnung
WHERE re_date >= '1330556401'
GROUP BY re_id
 
Hi,

danke für den tipp.
Hmmm, das problem ist wenn z.b. sum1 als ergebnis 35.45 hat und sum2 als ergebnis NULL, dann ist auch das gesamtergebnis leider null :(
 
Werbung:
Dann solltest Du noch CASTen.

Code:
select re_id,

(SELECT SUM(re_price) AS sum1 FROM rechnung WHERE rech_ext = 0) AS sum1,
(SELECT SUM(re_price*re_stunden) AS sum2 FROM rechnung WHERE rech_ext = 1) AS sum2,
CAST(
 ( 
   SELECT SUM(re_price) AS sum1 
   FROM rechnung 
   WHERE rech_ext = 0
  ) AS SIGNED INT ) + CAST(
  (
    (
      SELECT SUM(re_price*re_stunden) AS sum2 
      FROM rechnung 
      WHERE rech_ext = 1
    ) AS SIGNED INT
) as summe

FROM rechnung
WHERE re_date >= '1330556401'
GROUP BY re_id

Siehe auch:
MySQL :: MySQL 5.0 Reference Manual :: 11.10 Cast Functions and Operators
 
Zurück
Oben