我正在尝试确定如何在两个表之间进行求和字段。
在表 1 中,我们将其简称为 gegevens,例如 gegevenID、vertrekdatum、prijs
在表 2 中,我们将其称为费用,例如,feeID、gegevenID、amount
我想根据 gegevens 的 year(vertrekdatum) 对 prijs 的值进行求和。
我曾尝试进行 LEFT JOIN 并且它一直有效,直到费用表中有两个相同 gegevenID 的记录。然后它加倍了 prijs。
表格示例:
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|
----------------------------
我想要的结果是
TOTALS
--------------------------------------------
| year | SumOfPrijs | SumOfFees | Total |
--------------------------------------------
| 2011 | 1836.14 | 176.00 | 2012.14 |
| 2012 | 2505.10 | 50.00 | 2555.10 |
--------------------------------------------
当考虑到一个 gegevenID 的费用表中有两行时,此查询导致“prijs”加倍。
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)
任何想法都会很棒。