Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête SUM pour deux champs dans deux tables différentes

Vous devez utiliser une sous-requête pour agréger le tableau des frais avant la jointure :

SELECT sum(prijs) as SumOfPrijs, sum(amount) as SumOfFees, sum(prijs)+sum(amount) AS   
Total, year(vertrekdatum) as year
FROM tbl_vluchtgegevens vg LEFT JOIN
     (select f.gegevenId, sum(amount) as Amount
      from tbl_fees f
      group by f.gegevenId
     ) f
     ON f.gegevenID = vg.gegevenID
WHERE vertrekdatum <=NOW()
GROUP by year(vertrekdatum);

Le problème est que les frais multiples sur "gegeven" font que la jointure produit des lignes inattendues, qui affectent la somme.