问题描述
我在计算视图中设置了以下数据:
我正在尝试为键“ SAPClient Warehouse TU_NUM”创建另外两个计算列:
-
如果((TXT04 ='CHKO')和(STATUS_VALUE ='X'))AND((TXT04 ='CHKI')和(STATUS_VALUE ='X'))则列应返回``X''
-
如果((TXT04 ='CHKO')和(STATUS_VALUE =''))和((TXT04 ='CHKI')和(STATUS_VALUE ='X'))如果该列应返回“ X” >
当我尝试创建第一列时,我正在使用以下代码:
if(“ TXT04” ='CHKO',if(“ STATUS_VALUE” ='X','X',''),'')和if(“ TXT04” ='CHKI',if(“ STATUS_VALUE” ='X','X','),'')
但是出现以下语法错误:
您能给我一些有关如何更好地解决问题的建议吗?
将提供任何帮助。
感谢和BR。
解决方法
函数IF在表达式中返回一个字符串值,因此在字符串上没有定义AND运算符(更确切地说,AND是一个函数,如您通过trace所见)。
但是我认为您的代码中存在一个错字,因为(A and B) and (C and D)
等于A and B and C and D
,并且您尝试对“ TXT04='CHKO'
”和“ TXT04='CHKI'
”进行“与”运算,显然是FALSE
。
如果只有两个值,则可以使用单个IF if(<1'st group of conditions>,'X','')
并相应地对所有条件进行分组。如果您有第三个值(“ X”和“''除外),则用第二个if替换摘要中的“”。对于两个以上的输出值,我更喜欢case
语句。