2017-07-19 129 views
0

问:如何求和列A中列B =列C的所有值。我有一个列出主键和外键的查询。我想总结外键等于主键的所有值。对于每个外键值,该总和的乘积应填充在行的末尾。 Access数据库,VBA。如何求和列A中列B =列C的所有值

这是我有:

SUM([$Amount](IIF([TableA].[Primary_Key]=[TableB].[Foreign_Key],0,0) 

进入这里

+0

这样,所有具有相同值的外键具有相同的[SUM $ Amount_Product] – Gustavo

+0

这是什么意思'这个总和的产品' - 什么产品?你的意思是说'这笔钱的结果'?如果你想在每一行上使用Amount字段对该表进行汇总查询,然后将该查询加入到另一个表中。编辑您的问题以提供示例数据。 – June7

回答

2

形象的描述真的不应该使用标点符号和特殊字符的名称(唯一的例外是下划线),特别是作为第一个字符。

Sum(IIf([Primary_Key]=[ForeignKey], [$Amount], 0))

如果查询使用一个内部联接,然后返回只记录将是那些主键和外键是相同的,并且IIF()是没有必要的。

+0

谢谢!但它没有执行'Expr1:Sum(IIf([Contracts_Contract ID] = [Funding_String_Contract ID],[Funding_String_Amount],0))''。我收到错误:“在GROUP BY子句中不能有聚合函数”。 – Gustavo

+0

您是否尝试使用INNER JOIN并且没有建议的IIf()函数?发布尝试的SQL语句。否则,在查询设计视图中,从表达式中除去Sum并将该字段下的GROUP BY更改为Sum。然后在SQL视图中查看查询。 – June7

+0

谢谢!但是,这仍然没有让我到我想要的地方。我正在寻找一个表达式,它将共享外键/主键的查询中的所有值相加。当前表达式似乎只验证主键和外键是相同的,而不是匹配主键和外键相同并提供总和的所有其他记录。感谢您的帮助!!! – Gustavo

0

为了提供与列A和列B相关联的值的总和,CROSSTAB查询是必要的。可以手动设置交叉表查询,也可以通过“创建查询”向导进行设置。

相关问题