访问 - VBA - 所有记录的SQL查询

时间:2016-05-05 04:34:20

标签: sql vba access

Date        Name    Charge
1/15/2015   Alpha   0
2/15/2015   Alpha   0
2/15/2015   Beta    0
2/15/2015   Gamma   2
3/15/2015   Gamma   3
3/15/2015   Alpha   5
4/15/2015   Beta    0

以上是Access中的示例表。我的目的是捕获严格值为0的所有唯一名称' Charge',但如果任何名称具有非零值,则查询将根本不返回名称。 例如,基于样本数据,正确写入查询将仅导致" Beta"出现。

如何针对上述要求编写SQL查询?感谢帮助 - 谢谢!

2 个答案:

答案 0 :(得分:2)

您可以将SUMGROUP BYHAVING一起使用:

SELECT Name
FROM tbl
GROUP BY Name
HAVING SUM(Charge) = 0

ONLINE DEMO

答案 1 :(得分:0)

我想我可能实际上有解决方案(下面)这是我自己的问题。它反过来要求用户输入开始日期&结束日期作为输入:

PARAMETERS [Start Date] DateTime, [End Date] DateTime;
SELECT tbl.Name
FROM tbl
WHERE ([tbl].[Date]>=[Start Date] And [tbl].[Date]<=[End Date])
GROUP BY tbl.Name
HAVING SUM(Charge) = 0;