Access 2016 - SQL 总和查询不提供总和,无错误



目标/问题

我想做的是相当简单的。我有两个域,InvoiceNbrTransAmt。在表中,每个发票可能有多个事务。因此,我只是尝试将每个发票号的所有交易相加,以便每个发票号都有一个交易总额(稍后可以从余额中减去它以获得剩余余额)。听起来很简单,通常是……但我有一个问题(或bug?这不会导致错误)!

我的数据

下面是一个查询,它将给出我的数据片段:

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',格式为'currency' -因此它应该能够与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似乎认为它正在输出正确的结果

我在这里忽略了一些非常简单的东西,或者这是一个我从未遇到过的访问错误?任何帮助将非常感激!谢谢。

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

我认为等效的查询看起来更像这样:

SELECT t.InvoiceNbr, 
       Sum(t.TransAmt) AS MyTest
FROM _MasterLog_Transactions as t
WHERE t.InvoiceNbr = "16081702014741" AND
      t.TransAmt > 0
GROUP BY t.InvoiceNbr;

我猜你真正汇总的数据是这样的:

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

[_MasterLog_Transactions].TransAmt > 0过滤出键值的条件

最新更新