Requête SOMME de deux champs dans deux tables différentes
Je suis en train de déterminer comment faire la somme des champs entre deux tables.
Dans le tableau 1, nous allons l'appeler gegevens pour faire court, j'aurais, par exemple, gegevenID, vertrekdatum, prijs
Dans le tableau 2, nous allons l'appeler frais, j'aurais , par exemple, feeID, gegevenID, montant
Je veux prendre et la somme des valeurs pour prijs basé sur l'année(vertrekdatum) à partir de gegevens.
J'avais essayé de faire une JOINTURE GAUCHE et cela a fonctionné jusqu'à il y a deux enregistrements pour le même gegevenID dans le tarif de la table d'., puis il a doublé la prijs.
Exemple de Table:
GEGEVENS
----------------------------------
gegevenID | vertrekdatum | prijs |
----------------------------------
| 1 | 2011-01-01 |1385.88|
| 2 | 2011-03-01 | 450.26|
| 3 | 2012-01-01 |2505.10|
----------------------------------
FEES
----------------------------
feeID | gegevenID | amount |
----------------------------
| 1 | 2 | 50.00|
| 2 | 2 | 126.00|
| 3 | 3 | 50.00|
----------------------------
Les résultats que j'ai voulez sont
TOTALS
--------------------------------------------
| year | SumOfPrijs | SumOfFees | Total |
--------------------------------------------
| 2011 | 1836.14 | 176.00 | 2012.14 |
| 2012 | 2505.10 | 50.00 | 2555.10 |
--------------------------------------------
Cette requête a abouti à la doublé 'prijs" lorsqu'il a pris en compte, il y avait deux lignes dans le tableau des frais à payer pour un gegevenID.
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 tbl_fees f
ON f.gegevenID = vg.gegevenID
WHERE vertrekdatum <=NOW()
GROUP by year(vertrekdatum)
Toute pensée serait génial.
OriginalL'auteur | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'utiliser une sous-requête pour regrouper les frais de tableau avant de le rejoindre:
Le problème est que les multiples taxes sur les sur les "gegeven" est à l'origine de la rejoindre pour produire des lignes inattendus, qui affectent la somme.
Il pourrait être agréable à "accepter" ce que la réponse
OriginalL'auteur Gordon Linoff
Participation à toute forme permettra de doubler les valeurs lorsqu'il y a deux
gegevenID
lignes dansfees
(ou triple si il ya trois, et ainsi de suite).La meilleure solution je pense est de calculer les sommes de façon indépendante - une sous-requête pour le prix et une sous-requête pour les frais, puis de les mettre les résultats de l'ensemble:
Il y a un SQL Violon ici.
OriginalL'auteur Ed Gibbs