Ich versuche zu bestimmen, wie Summenfelder zwischen zwei Tabellen zu tun.Abfrage SUM für zwei Felder in zwei verschiedenen Tabellen
In Tabelle 1 werden wir es kurz nennen gegevens, hätte ich zum Beispiel gegevenID, vertrekdatum, prijs
In Tabelle 2 werden wir es Gebühren nennen, ich hätte zum Beispiel , feedID, gegevenID, Betrag
Ich möchte die Werte für prijs basierend auf Jahr (vertrekdatum) von gegevens nehmen und summieren.
Ich hatte versucht, eine LINKE VERBINDUNG zu machen und es funktionierte, bis es zwei Datensätze für die gleiche gegevenID in der Tabelle der Gebühr gab., Dann verdoppelte es die prijs.
Tabelle Beispiel:
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 ich will
TOTALS
--------------------------------------------
| year | SumOfPrijs | SumOfFees | Total |
--------------------------------------------
| 2011 | 1836.14 | 176.00 | 2012.14 |
| 2012 | 2505.10 | 50.00 | 2555.10 |
--------------------------------------------
Diese Abfrage führte zur verdoppelt ‚prijs‘ sind, wenn es berücksichtige es in den Gebühren zwei Reihen waren Tabelle für eine 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)
Alle Gedanken wären toll.
das ist perfekt. Vielen Dank für die Hilfe. Ich hatte eine ähnliche Option versucht, aber es würde keine Ergebnisse liefern, wenn in der Gebührentabelle keine Werte vorhanden wären, die der gegevenID in der Tabelle tbl_vluchtgegevens entsprachen. –
Es könnte nett sein, dies als Antwort anzunehmen – Strawberry