sql - Access 2016 - SQL 求和查询不提供求和,没有错误

标签 sql ms-access sum

目标/问题

我想做的事情相当简单。我有两个字段,InvoiceNbrTransAmt。在表中,每张发票可能有多个交易记录。因此,我只是尝试对每个发票编号的所有交易求和,这样我就可以为每个发票编号计算一笔交易总和(稍后我可以从余额中减去该总金额以获得剩余余额)。听起来很简单,而且通常是......但我遇到了一个问题(或错误?不会导致错误)!

我的数据

这是一个查询,它将提供我的数据片段:

SELECT [_MasterLog_Transactions].InvoiceNbr, [_MasterLog_Transactions].TransAmt
FROM _MasterLog_Transactions
GROUP BY [_MasterLog_Transactions].InvoiceNbr, [_MasterLog_Transactions].TransAmt
HAVING ((([_MasterLog_Transactions].InvoiceNbr)="16081702014741") 
AND (([_MasterLog_Transactions].TransAmt)>0));

这会导致:

InvoiceNbr      TransAmt
16081702014741  $1,096.73
16081702014741  $3,668.25

如果我使用 Access GUI 添加“总计”行,并选择“SUM”,它会正确计算“$4,764.98”。对于其他随机引用,在 _MasterLog_Transactions 表中,TransAmt 是一个“数字”字段,字段大小为“ double ”,格式为“货币”——所以它应该是能够与 SUM 函数一起使用。

我的查询

因此,根据上述数据,我创建了查询:

SELECT [_MasterLog_Transactions].InvoiceNbr, 
       Sum([_MasterLog_Transactions].TransAmt) AS MyTest
FROM _MasterLog_Transactions
GROUP BY [_MasterLog_Transactions].InvoiceNbr
HAVING ((([_MasterLog_Transactions].InvoiceNbr)="16081702014741"));

我的查询结果

InvoiceNbr      MyTest
16081702014741  $1,096.73

我本来期望:

InvoiceNbr      MyTest
16081702014741  $4,764.98

没有发生错误。它运行并且 Access 似乎认为它正在输出正确的结果。

我是否忽略了一些非常简单的事情,或者这是我从未遇到过的 Access 错误?任何帮助将不胜感激!谢谢。

最佳答案

  • 请检查 InvoiceNbr 中是否有空间。
  • 您可以通过在查询中添加 COUNT(*) 来验证这是否是 InvoiceNbr 问题。

关于sql - Access 2016 - SQL 求和查询不提供求和,没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362786/

相关文章:

php - 从Mysql获取每组最小值的总和

sql - 为什么在我的应用程序中没有返回行,而相同的查询在 DBBrowser 中返回行?

mysql - 在 mysql 中连接两个表时丢失数据?

MySQL多对多,获取值

sql - Access 仅匹配一个的vba sql

r - 字符串中的总和数 (R)

php - Mysql查询获取字段名和结果作为数组键和数组值

ms-access - "WARNING: Error in the metadata of the table ..."打开数据库

vba - 错误时类型不匹配

python - 对给定列表 Python 的给定范围内的所有数字求和