SQL-запрос дает неправильную сумму - PullRequest
0 голосов
/ 20 февраля 2012

Я использую довольно старый Microsoft Query, поставляемый с Excel, для запроса базы данных 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

Присоединенное поле, являющееся кодом учетной записи.

Поле tr_amount происходит из таблицы deb_trans. Его нет в mailer_master.

Есть идеи? Спасибо, ребята!

1 Ответ

1 голос
/ 20 февраля 2012

Если вы присоединитесь к таблицам, вы получите строку для каждой комбинации, которая соответствует критериям фильтра, прежде чем она будет сгруппирована.В этом случае: строка для каждой комбинации deb_trans и mailer_master, отфильтрованной по дате.Если вам нужна правильная сумма, вам не следует присоединяться к другой таблице так, как изменяется количество строк (до группировки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...