#hana #hana-studio
#hana #hana-studio
Вопрос:
У меня есть следующий набор данных в моем представлении вычислений:
И я пытаюсь создать два дополнительных вычисляемых столбца для ключа «TU_NUM хранилища SAPClient»:
-
Столбец должен возвращать «X», если ((TXT04=’CHKO’) и (STATUS_VALUE=’X’)) И ((TXT04=’CHKI’) и (STATUS_VALUE=’X’))
-
Столбец должен возвращать «X», if ((TXT04=’CHKO’) и (STATUS_VALUE=’ ‘)) И ((TXT04=’CHKI’) и (STATUS_VALUE=’X’))
Когда я пытаюсь создать первый столбец, я использую следующий код:
if(«TXT04″=’CHKO’,if(«STATUS_VALUE»=’X’, ‘X’,’ ‘ ‘),’ » и if(«TXT04″=’CHKI’,if(«STATUS_VALUE»=’X’, ‘X’,’ ‘),’ ‘)
Но получаем следующую синтаксическую ошибку:
Не могли бы вы дать мне какие-либо советы о том, как я могу решить свою проблему лучшим способом?
Был бы признателен за любую помощь.
Спасибо и БР.
Ответ №1:
Функция IF возвращает строковое значение в вашем выражении, поэтому для строк не определен оператор AND (точнее, AND является функцией, как вы можете видеть через трассировку). Но я думаю, что в вашем коде есть опечатка, так (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
statement .