对于这个问题,假设我有两个表:“事务”和“类别”。
交易:
分类:
我正在尝试编写一个查询,该查询将汇总按Category_ID分组一个月(例如,十二月)发生的所有TransactionValues,并显示所有类别的结果,即使特定类别的表上没有事务也是如此。
SELECT Categories.Category_ID, Sum(TransactionValue)
FROM Categories LEFT JOIN Transactions ON Categories.Category_ID = Transactions.Category_ID_FK
WHERE Month(TransactionDate) = '12'
这样,我只能从“事务”表上具有至少一个事务的类别中获得结果。
谢谢你们!
您可以在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不支持此语法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句