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

Tableau连接DB2自定义SQL无响应,如何实现不同日期字段差异查询

问题解答

自定义SQL的运行可行性与修正方案

你编写的自定义SQL逻辑本身完全符合你的需求,无法在Tableau中运行是因为存在语法问题:

  • 你给LOD.ISM_ISSUE_SUMMARY_HIST_WKY设置的表别名CURRENT是DB2的保留关键字,直接使用会触发语法报错,导致无数据返回。
  • 另外检查AS_OF_DATE字段类型,如果是TIMESTAMP类型,直接和字符串日期匹配也会导致无数据返回。

修正后的可运行SQL如下:

SELECT 
    RMD.ISSUE_ID,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.ISSUE_TITLE END) AS CURR_ISSUE_TITLE,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.MEMBER_IMPACT END) AS CURR_MEMBER_IMPACT,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-08' THEN CURR.MEMBER_IMPACT END) AS PREV_MEMBER_IMPACT,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.ISM_STATUS END) AS CURR_ISM_STATUS,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.ISSUE_OWNER_ORG END) AS CURR_ISSUE_OWNER_ORG,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.ISSUE_OWNER END) AS CURR_ISSUE_OWNER,
    MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.ISSUE_APPROVER END) AS CURR_ISSUE_APPROVER
FROM LOD.ISM_ISSUE_SUMMARY_HIST_WKY CURR 
INNER JOIN LOD.RMD_ISS_REMED_SUMMARY RMD
    ON CURR.ISSUE_ID = RMD.ISSUE_ID
WHERE AS_OF_DATE IN ('2021-08-08', '2021-08-15') 
GROUP BY RMD.ISSUE_ID
HAVING MAX(CASE WHEN AS_OF_DATE = '2021-08-08' THEN CURR.MEMBER_IMPACT END) <> MAX(CASE WHEN AS_OF_DATE = '2021-08-15' THEN CURR.MEMBER_IMPACT END) ;

如果AS_OF_DATE为TIMESTAMP类型,把WHERE条件改为WHERE DATE(AS_OF_DATE) IN ('2021-08-08', '2021-08-15')即可。

Tableau原生计算字段实现方案

如果不想使用自定义SQL,可按以下步骤用Tableau原生功能实现需求,你之前编写的计算字段逻辑错误:单个计算字段无法同时返回多个不同属性的值,且你输入的日期存在笔误#2021-08-015#多了一位0,也会导致逻辑失效。

正确操作步骤如下:

  1. 不使用自定义SQL,直接将LOD.ISM_ISSUE_SUMMARY_HIST_WKY和LOD.RMD_ISS_REMED_SUMMARY两张表按ISSUE_ID字段关联导入Tableau
  2. 为每个需要的属性单独编写FIXED级别计算字段,跨行提取对应日期的数值:
  • 字段名:CURR_ISSUE_TITLE
{FIXED [ISSUE_ID] : MAX(IF [AS_OF_DATE] = #2021-08-15# THEN [ISSUE_TITLE] END)}
  • 字段名:CURR_MEMBER_IMPACT
{FIXED [ISSUE_ID] : MAX(IF [AS_OF_DATE] = #2021-08-15# THEN [MEMBER_IMPACT] END)}
  • 字段名:PREV_MEMBER_IMPACT
{FIXED [ISSUE_ID] : MAX(IF [AS_OF_DATE] = #2021-08-08# THEN [MEMBER_IMPACT] END)}

其余CURR_ISM_STATUS、CURR_ISSUE_OWNER_ORG、CURR_ISSUE_OWNER、CURR_ISSUE_APPROVER字段都参考CURR_ISSUE_TITLE的逻辑编写,仅修改THEN后对应的字段名即可。
3. 编写筛选计算字段,过滤掉两个日期MEMBER_IMPACT一致的记录:

[CURR_MEMBER_IMPACT] <> [PREV_MEMBER_IMPACT]

将该字段拖入筛选器栏,选择值为“真”即可得到目标数据集。

内容的提问来源于stack exchange,提问作者JC411911

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:27:04