Fragen Sie SUM für zwei Felder in zwei verschiedenen Tabellen ab
Ich versuche festzustellen, wie man Felder zwischen zwei Tabellen summiert.
In Tabelle 1 werden wir es kurz gegevens nennen, ich hätte zum Beispiel gegevenID, vertrekdatum, prijs
In Tabelle 2 nennen wir es Gebühren, ich hätte zum Beispiel feeID, gegevenID, betrag
Ich möchte die Werte für prijs basierend auf year (vertrekdatum) von gegevens nehmen und summieren.
Ich hatte versucht, einen LEFT JOIN zu machen, und es funktionierte, bis zwei Datensätze für dieselbe gegevenID in der Gebührentabelle waren. Dann verdoppelte es die prijs.
Tabellenbeispiel:
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|
----------------------------
Die Ergebnisse, die ichwollen sind
TOTALS
--------------------------------------------
| year | SumOfPrijs | SumOfFees | Total |
--------------------------------------------
| 2011 | 1836.14 | 176.00 | 2012.14 |
| 2012 | 2505.10 | 50.00 | 2555.10 |
--------------------------------------------
Diese Abfrage führte zu den doppelten "prijs", wenn berücksichtigt wurde, dass die Gebührentabelle für eine gegevenID zwei Zeilen enthielt.
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)
Irgendwelche Gedanken wären toll.