Somma su diverse tabelle in MySQL

Mattepuffo's logo
Somma su diverse tabelle in MySQL

Somma su diverse tabelle in MySQL

Sul mio db MySQL ho delle tabelle simili, sulle quali dovevo fare la somma.

Quindi una cosa del genere:

SELECT bcv_modello, SUM(bcv_qta) sum FROM bcv
WHERE bcv_codice IN(108491, 908491) AND bcv_causale IN(4020, 4022, 4005, 4030)
GROUP BY bcv_modello

Una query praticamente identica su un'altra tabella.

Come posso fare la somma del risultato delle due tabelle?

Ecco qua la risposta:

SELECT bcv_modello, SUM(sum) FROM (
    SELECT bcv_modello, SUM(bcv_qta) sum FROM bcv
    WHERE bcv_codice IN(108491, 908491) AND bcv_causale IN(4020, 4022, 4005, 4030)
    GROUP BY bcv_modello
    UNION ALL
    SELECT  bcv_modello, (SUM(bcv_qta) * -1) sum FROM bcv
    WHERE bcv_codice IN(108491, 908491) AND bcv_causale IN(4025, 4027)
    GROUP BY bcv_modello
    ORDER BY bcv_modello
) res_table
GROUP BY bcv_modello
ORDER BY bcv_modello

Nella seconda SELECT ho anche moltiplicato per meno uno; questo perchè, nel mio caso specifico, dovevo fare SELECT_1 - SELECT_2.

Se non dovete fare la sottrazione, ma una addizione, basterà levare la moltiplicazione.

Enjoy!


Condividi

Commentami!