You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:17:47