我正在使用Excel附带的相当旧的Microsoft Query来查询ODBC数据库。但是当我加入两张桌子时,它给了我错误的总和。
这很好用:
SELECT accountcode, SUM(tr_amount)
FROM deb_trans deb_trans
WHERE (today() > dr_tr_due_date + 14)
GROUP BY accountcode
然而,这不是:
SELECT deb_trans.accountcode, Sum(deb_trans.tr_amount)
FROM deb_trans deb_trans, mailer_master mailer_master
WHERE (today()>dr_tr_due_date+14) AND (mailer_master.accountcode=deb_trans.accountcode)
GROUP BY deb_trans.accountcode
加入的字段是帐户代码。
来自deb_trans表的字段tr_amount orginates。它在mailer_master中不存在。
有什么想法吗?谢谢你们!
答案 0 :(得分:1)
如果您加入表格,则每个组合都会得到一行,该行与分组前的过滤条件相对应。在这种情况下:按日期过滤的每个deb_trans和mailer_master组合的一行。如果你想要一个有效的总和,你不应该以行数(分组前)的方式加入另一个表。