我正在从簿记系统中提取报告.该系统有一个讨厌的习惯,就是在其内部处理的数据库中放置重复项(而不是首先将其清理干净!)
例如,这是发票125的总计表:
+------------+-----------+----------+
| invoice_id | code | amount |
+------------+-----------+----------+
| 125 | sub_total | 300.0000 |
| 125 | tax | 30.0000 |
| 125 | total | 330.0000 |
| 125 | sub_total | 300.0000 |
| 125 | tax | 30.0000 |
| 125 | total | 330.0000 |
+------------+-----------+----------+
以及相同id的发票表
+-----+----------+
| id | amount |
+-----+----------+
| 125 | 330.0000 |
+-----+----------+
我希望生成一段时间内的总销售额和税费(针对澳大利亚BAS)
我的MWE查询(如果数据是干净的,它就会工作)是
select sum(a.amount) as total_sales, sum(c.amount) as total_GST
from 7cn_invoices a
INNER JOIN 7cn_invoice_totals c ON a.id = c.invoice_id
where c.code = 'tax';
然而,由于total表中有重复项,我得到的总销售额是它们本应的两倍.解决这个问题的最佳方法是什么(除了修补代码)?