У меня есть эти 2 таблицы:
Table1
CustomerID Area Type Revenue
1 Europe Institutional Clients 10
2 Asia Institutional Clients 10
3 USA Institutional Clients 10
Table2
Report Country Type Rate
DK Institutional Clients 2
SE Institutional Clients 2
FI Institutional Clients 2
Я хочу сделать запрос, который объединяет две таблицы и создает вычисляемое поле (Доход * Ставка). Но когда я использую конструктор запросов MS Access, сумма вычисленного поля возвращает неправильный результат.
Запрос версии1 :
Этот запрос возвращает 20 для каждого клиента (что правильно) и 60 всего, но поля не сгруппированы в 1 строку. (если я удаляю поля CustomerID и Area, я получаю 1 строку, но результат говорит 20 ?! Se version1B ниже)
SELECT t_Customer.CustomerID, t_Customer.Area, t_Customer.Type, [Revenue]*[Rate] AS CalculatedField
FROM t_Customer INNER JOIN t_Rate ON t_Customer.Type = t_Rate.Type
GROUP BY t_Customer.CustomerID, t_Customer.Area, t_Customer.Type, [Revenue]*[Rate];
Возвращает:
CustomerID Area Type CalculatedField
1 Europe Institutional Clients 20
2 Asia Institutional Clients 20
3 USA Institutional Clients 20
Запрос версии 1B : я удаляю поля CustomerID и Area.
SELECT t_Customer.Type, ([Revenue]*[Rate]) AS CalculatedField
FROM t_Customer INNER JOIN t_Rate ON t_Customer.Type = t_Rate.Type
GROUP BY t_Customer.Type, ([Revenue]*[Rate]);
Возвращает:
Type CalculatedField
Institutional Clients 20
Запрос версии2 :
Здесь я добавляю СУММ Расчетного поля.
Этот запрос возвращает 180 (что неверно).
SELECT t_Customer.Type, Sum(([Revenue]*[Rate])) AS CalculatedField
FROM t_Customer INNER JOIN t_Rate ON t_Customer.Type = t_Rate.Type
GROUP BY t_Customer.Type;
Возвращает:
Type CalculatedField
Institutional Clients 180
Есть ли способ использовать конструктор запросов MS Access для отображения правильной суммы вычисляемого поля, поэтому у меня может быть только 1 запрос для этой цели?
Я знаю, что мог бы просто сделать новый запрос поверх Запрос version1 , который дает правильную сумму. Но я бы хотел избежать двух запросов для этой цели.