我需要在 MS Access 中构建表达式的帮助。我知道基础知识,但我以前没有做过复杂的表达。
数据库从工作中获取劳动力和材料等数据,并将其标记为我们向客户收取的费用。劳动力方面我已经搞清楚了,但是物质方面更复杂。目前的公式是这样的:
Material Cost: IIf([MATERIAL_TYPE]="S" Or [MATERIAL_TYPE]="M",[MATERIAL_COST]*1.42,[MATERIAL_COST])
我需要做的是在方程
([MATERIAL_TYPE]="T")
中添加新的材料类型,但仅当 [MATERIAL_TYPE]="T"
来自帐户 5、6 或 7 时。我该怎么做?
我尝试过这个表达式,但语法不正确。
Material Cost: IIf([MATERIAL_TYPE]="S" Or [MATERIAL_TYPE]="M" Or ([MATERIAL_TYPE]="T" where [ACCT = "5" "6" "7"]),[MATERIAL_COST]*1.42,[MATERIAL_COST])
样本数据:
Product 1 (Material Type S, Account 4)
Product 2 (Material Type S, Account 5)
Product 3 (Material Type M, Account 2)
Product 4 (Material Type M, Account 6)
Product 5 (Material Type T, Account 6)
Product 6 (Material Type T, Account 9)
Product 7 (Material Type T, Account 1)
使用示例数据,我希望选择前 5 个产品,而不是最后 2 个产品,如果这有意义的话。
由于您想排除产品 6 和 7,您可以将条件放在 WHERE 子句中,而不是 IFF 中。
SELECT [MATERIAL_COST]*1.42 AS Cost
FROM table
WHERE [MATERIAL_TYPE]="S"
OR [MATERIAL_TYPE]="M"
OR ([MATERIAL_TYPE]="T" AND ACCT in ("5", "6", "7") )