ACCESS SQL-按条件分组的Sum列,并且还显示空结果

布鲁诺·朱斯蒂·科罗纳托

对于这个问题,假设我有两个表:“事务”和“类别”。

交易:

  • 交易编号
  • Category_ID_FK
  • 交易日期
  • 交易价值

分类:

  • Category_ID
  • 类别描述

我正在尝试编写一个查询,该查询将汇总按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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章