ACCESS SQL - столбец суммы, сгруппированный по критериям и показывающий также пустые результаты - PullRequest
0 голосов
/ 13 ноября 2018

Для этого вопроса, скажем, у меня есть две таблицы: Транзакции и Категории.

Транзакции:

  • Transaction_ID
  • Category_ID_FK
  • TransactionDate
  • TransactionValue

Категории:

  • Category_ID
  • CategoryDescritpion

Я пытаюсь написатьзапрос, который будет суммировать все значения TransactionValues, имевшие место за месяц (например, декабрь), сгруппированный по Category_ID, и отобразить результаты для всех категорий, даже если в таблице для конкретной категории нет транзакций.

SELECT Categories.Category_ID, Sum(TransactionValue) 
FROM Categories LEFT JOIN Transactions ON Categories.Category_ID = Transactions.Category_ID_FK
WHERE Month(TransactionDate) = '12' 

При этом я получаю результаты только из категорий, в которых есть хотя бы одна транзакция в таблице транзакций.

Спасибо всем!

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете использовать подзапрос в MS Access:

SELECT c.Category_ID, Sum(t.TransactionValue) 
FROM Categories as c LEFT JOIN
     (SELECT t.*
      FROM Transactions as t
      WHERE Month(t.TransactionDate) = 12
     ) as t
     ON c.Category_ID = t.Category_ID_FK
GROUP BY c.Category_ID;

Типичный синтаксис SQL будет включать условие в предложении ON:

SELECT c.Category_ID, Sum(t.TransactionValue) 
FROM Categories as c LEFT JOIN
     Transactions as t
     ON c.Category_ID = t.Category_ID_FK AND Month(t.TransactionDate) = 12
GROUP BY c.Category_ID;

Я не думаю, что MS Access поддерживает этот синтаксис.

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