Tableau CASE语句类型不匹配错误求助:指定年月字段赋值问题
解决Tableau计算字段中CASE表达式类型不匹配的错误
一眼就能看出问题所在——你在CASE语句的WHEN分支里用了[api_contacts_handled] = 320这种写法,这其实是在做布尔判断(判断字段值是否等于指定数),返回的是True/False类型;但你的ELSE分支和外层ELSE返回的是[api_contacts_handled]这个整数类型的字段,两种返回类型不匹配,所以Tableau才抛出了Expected type Boolean found Integer的错误。
正确的计算字段写法
你只需要去掉赋值的=,直接返回想要指定的数值即可,这样所有分支的返回类型都是整数,和原字段类型完全一致:
IF [Y] = 2021 THEN CASE [M] WHEN 1 THEN 320 WHEN 2 THEN 420 WHEN 3 THEN 520 WHEN 4 THEN 620 WHEN 5 THEN 820 WHEN 6 THEN 920 ELSE [api_contacts_handled] END ELSE [api_contacts_handled] END
更简洁的优化写法
你也可以把外层的IF和CASE合并,让逻辑更紧凑清晰:
CASE WHEN [Y] = 2021 AND [M] = 1 THEN 320 WHEN [Y] = 2021 AND [M] = 2 THEN 420 WHEN [Y] = 2021 AND [M] = 3 THEN 520 WHEN [Y] = 2021 AND [M] = 4 THEN 620 WHEN [Y] = 2021 AND [M] = 5 THEN 820 WHEN [Y] = 2021 AND [M] = 6 THEN 920 ELSE [api_contacts_handled] END
这两种写法都能完美实现你的需求:当[Y]=2021且对应月份时返回指定数值,其他情况保留原字段值,同时彻底解决类型不匹配的错误。
内容的提问来源于stack exchange,提问作者Johnhan
相关产品推荐
相关产品推荐

