0

我的计算视图中有以下数据集:

在此处输入图像描述

我尝试为键“SAPClient Warehouse TU_NUM”创建两个额外的计算列:

  1. 如果 ((TXT04='CHKO') and (STATUS_VALUE='X')) AND ((TXT04='CHKI') and (STATUS_VALUE='X')) 列应该返回“X”

  2. 如果 ((TXT04='CHKO') and (STATUS_VALUE=' ')) AND ((TXT04='CHKI') and (STATUS_VALUE='X')) 列应该返回“X”

当我尝试创建第一列时,我使用以下代码:

if("TXT04"='CHKO',if("STATUS_VALUE"='X', 'X',''),'') 和 if("TXT04"='CHKI',if("STATUS_VALUE"='X ', 'X',' '),' ')

但得到以下语法错误:

在此处输入图像描述

你能给我一些关于如何以更好的方式解决我的问题的提示吗?

会感谢任何帮助。

谢谢和BR。

4

1 回答 1

2

函数 IF 在您的表达式中返回一个字符串值,因此没有在字符串上定义 AND 运算符(更准确地说,AND 是一个函数,您可以通过跟踪看到)。但我认为你的代码中有一个错字,因为(A and B) and (C and D)等于A and B and C and D,你尝试“与” TXT04='CHKO'TXT04='CHKI'这显然是FALSE

如果您只有两个值,那么您可以使用单个 IFif(<1'st group of conditions>, 'X', '')并相应地对所有条件进行分组。如果您有第三个值('X' 和 '' 除外),则将片段中的 '' 替换为第二个 if。对于两个以上的输出值,我更喜欢case声明。

于 2020-09-21T10:08:19.623 回答