Сумма от суммы в MySQL - PullRequest
       10

Сумма от суммы в MySQL

1 голос
/ 22 марта 2011
 SELECT 
f.nummer AS factuur_id,
f.mvoor AS factuur,
f.faktuurnr AS factuur_nr,
f.topdatum AS factuur_datum,
f.vervaldag AS factuur_vervaldatum,
f.totbruto AS factuur_totaal,
SUM(c.totbruto) AS credit_totaal,
SUM(b.bedrag) AS bedrag_totaal,
f.totbruto - (SUM(c.totbruto) + SUM(b.bedrag)) AS SOM

FROM    ((facturen AS f LEFT JOIN creditnota AS c ON f.nummer = c.nummer)

LEFT JOIN betaling1 AS b ON f.nummer = b.factuurnr)

LEFT JOIN klanten AS k ON f.klantnr = k.nr

WHERE f.betaald = 'N'

AND CURDATE() >= DATE_ADD(f.vervaldag, INTERVAL 15 DAY)

GROUP BY f.nummer

HAVING  (factuur_totaal - (SUM(c.totbruto) + SUM(b.bedrag))) > 0 

ORDER BY k.naam

А теперь я хочу СУММУ от СОМ Нужен ли для этого подзапрос? И как мне это сделать?

Я знаю, что могу просто зациклить это, но я хочу это в 1 запросе.

mysql, php

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Вы можете сделать это:

SELECT SUM(SOM) FROM (
    SELECT 
    f.nummer AS factuur_id,
    f.mvoor AS factuur,
    f.faktuurnr AS factuur_nr,
    f.topdatum AS factuur_datum,
    f.vervaldag AS factuur_vervaldatum,
    f.totbruto AS factuur_totaal,
    SUM(c.totbruto) AS credit_totaal,
    SUM(b.bedrag) AS bedrag_totaal,
    f.totbruto - (SUM(c.totbruto) + SUM(b.bedrag)) AS SOM

FROM    ((facturen AS f LEFT JOIN creditnota AS c ON f.nummer = c.nummer)
LEFT JOIN betaling1 AS b ON f.nummer = b.factuurnr)
LEFT JOIN klanten AS k ON f.klantnr = k.nr
WHERE f.betaald = 'N'
AND CURDATE() >= DATE_ADD(f.vervaldag, INTERVAL 15 DAY)
GROUP BY f.nummer
HAVING  (factuur_totaal - (SUM(c.totbruto) + SUM(b.bedrag))) > 0 
ORDER BY k.naam) AS temp

По сути, я только что завернул ваш запрос в SELECT SUM(<some row>) FROM (<your query>) AS temp.

0 голосов
/ 22 марта 2011

Обернуть оператор SOM в другой вызов SUM():

SELECT ...
    SUM(f.totbruto - (SUM(c.totbruto) + SUM(b.bedrag))) AS SOM
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...