首页 > 解决方案 > Ms Access 需要根据同一个表字段的多个条件进行计算

问题描述

我想就一个简单的 MS Access 项目提出以下问题,

我有一个包含 4 个字段 A、B、C、SUM 的表,我想创建一个表单来获取值 A、B、C(完成)和一个查询来根据表字段的多个条件计算结果:

IF A<=5 AND B<=2 THEN SUM = X1 value  + Y1 value + (C * Z1 value) + H
IF A>=5,01 AND A<50 AND B<=2 THEN SUM = X2 value  + Y2 value + (C * Z1 value)+ H
IF A>50 AND B<=2 THEN SUM = X3 value  + Y3 value + (C * Z1 value)+ H

(X1、X2、X3、Y1、Y2、Y3、Z1、Z2、H 是我已经拥有的整数值)

IF A<=5 AND B>2 THEN SUM = X1 value  + Y1 value + (C * Z1 value)+ H
IF A>=5,01 AND A<50 AND B>2 THEN SUM = X2 value  + Y2 value + (C * Z1 value)+ H
IF A>50 AND B>2 THEN SUM = X3 value  + Y3 value + (C * Z1 value)+ H

有人可以帮助我如何实现这个公式,我想我必须建立一个查询,但是有人可以指导我的语法吗?

谢谢大家。!!!

标签: ms-access

解决方案


首先,我建议您不要使用“SUM”作为字段名称,因为它代表一个聚合函数,而且我相信它也是一个保留字。检查(https://support.microsoft.com/en-us/office/learn-about-access-reserved-words-and-symbols-ae9d9ada-3255-4b12-91a9-f855bdd9c5a2#:~:text=%22Reserved% 20words%22%20are%20words%20and,when%20referring%20to%20the%20field. ) 在 MS Access SQL 中,您可以使用条件语句 IIF,例如

IIF(条件,如果为真则返回,如果为假则返回)。最终,您可以嵌套 IIF 语句。例子

res(Your SUM) =(IIF(A<=5 AND B<=2, X1 + Y1 + H + C*Z1,
    IIF(A BETWEEN 5 AND 50 AND B2 >2,X2 + Y2 + H + C*Z1,X3 + Y3 + H + C*Z1))

所以你的查询应该是这样的

 "SELECT A, B, C, (IIF(A<=5 AND B<=2, X1 + Y1 + H + C*Z1,
        IIF(A BETWEEN 5 AND 50 AND B2 >2,X2 + Y2 + H + C*Z1,X3 + Y3 + H + C*Z1)) AS res
 FROM your_table_name"

您必须提供 Xs、Ys、Zs、H 和 C 值作为参数或硬输入。您也可以考虑使用 BETWEEN。

它可能变得有点混乱,但就是这样。


推荐阅读