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 子句的主要内容,如果未能解决你的问题,请参考以下文章
将 MS Access 查询(使用 IIF() 和 DATESERIAL())事务处理到 T-SQL
如何将 MS Access“IIF”查询转换为 Sql Server 查询?