我正在将SAS代码转换为Cognos Report Studio版本10,其中卡在需要数据格式的位置。
IF SDW_STAT ^= '' THEN PRINCIPAL_BAL = TOT_PRIN;
哪里'' represnts单引号,没有任何空格
我尝试写一个CASE STATEMENT
:
CASE
WHEN ([SDW_STAT] IS NOT MISSING) THEN ([PRINCIPAL_BAL] = [TOT_PRIN])
ELSE ('')
END
我还尝试了一些选项,例如<> '', is not null, <> ' '
而不是IS NOT MISSING
,但它们都没有奏效。你能告诉我哪里出错吗?
请注意:SDW_STAT列的空白字段很少,而某些字符如“Y&#39; &#39; S&#39;等
答案 0 :(得分:2)
尝试将列放在CASE
语句之外:
PRINCIPAL_BAL =
CASE
WHEN COALESCE(SDW_STAT,'') <> '' THEN TOT_PRIN
ELSE PRINCIPAL_BAL
END
逻辑上,当sdw_stat不等于空白或空时,这会将principal_bal更新为tot_prin。如果它是空白的,那么它只会将其更新为自己。
答案 1 :(得分:0)
问题很可能是ELSE声明。你的THEN子句是一个等式。这将返回一个布尔值, true 或 false 。你的其他人正在返回一个字符串这些类型不兼容。您可以通过将ELSE更改为:
来测试ELSE (false)
我的猜测是数据类型错误会消失。
您能详细说明您使用此代码的位置吗?它是在数据项中还是在过滤器中?根据表达式的使用位置,有不同的规则。
注意:我会直接评论这个问题,但我是新手,还没有能力。