Sum() 使用 IIF() 或 MS Access 中的 Where 子句

Posted

技术标签:

【中文标题】Sum() 使用 IIF() 或 MS Access 中的 Where 子句【英文标题】:Sum() using IIF() or Where Clause in MS Access 【发布时间】:2021-01-21 20:06:40 【问题描述】:

在我的报告中: BID 是计费客户 ID 一个文本字段。 NPROFIT 是一个数字字段的净利润。

我的查询对所有 BID 的 NPROFIT 求和。 使用语句: =Sum([NPROFIT])

我只需要对某些 ​​BID 值的 NProfit 列求和...实际上,我想 SUM() 4 OF 10 BID 并排除其他 6 of 10

我尝试过: IIF([BID]=403490, =Sum([NPROFIT]), "无")

那行不通。 有什么建议吗?

【问题讨论】:

【参考方案1】:

试试这个:

Sum(IIf([BID]=403490, [NPROFIT], 0))

【讨论】:

谢谢@Gustav,我同意,这对我来说看起来是正确的......但是......这是我得到的错误回报:Extra)在查询表达式'First([Sum(IIf([出价]=403490, [NPROFIT],0))])' 作为附加信息,我总是得到 0 的结果......当我在 Sum 前面添加“=”时......就像这样...... =Sum(IIf([BID ]=403490, [NPROFIT], 0)) 等等...我超前了...在我的示例中正确的答案是 0,然后我更改了 BID 并再次得到了正确的结果...。现在你知道该怎么做了我可以添加额外的 BID,这样我就可以只对那些选定的 BID 进行求和,并排除任何未在 TOTAL 中选择的...我可以嵌套 IIf() 语句来实现这一点吗? 不应该需要First。按 BID 求和,Group By BID。 我继续尝试嵌套 IIf() 语句的想法,在您的代码建议的帮助下,它就像一个魅力......谢谢一堆!这为我节省了很多 GREIF 和很多时间!这是最终的代码,可能有更优雅的方法可以做到这一点,但是,这工作得很好......再次感谢! =Sum(IIf([BID]=403490,[NPROFIT],0)+IIf([BID]=375130,[NPROFIT],0)+IIf([BID]=214900,[NPROFIT],0)+IIf( [出价]=368380,[NPROFIT],0))

以上是关于Sum() 使用 IIF() 或 MS Access 中的 Where 子句的主要内容,如果未能解决你的问题,请参考以下文章

使用 IIF 和 SUM 的 MDX

iif 日期超过两次 MS-Access [关闭]

将 MS Access 查询(使用 IIF() 和 DATESERIAL())事务处理到 T-SQL

如何将 MS Access“IIF”查询转换为 Sql Server 查询?

s-s-rS 表达式在 SUM 和 IIF 时给出 #Error

MS Access 查询条件 IIf true then <