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

Looker自定义PoP维度Liquid语法错误:if标签未闭合求助

Looker自定义PoP维度Liquid语法错误修复

问题分析

你遇到的“if标签未闭合”错误,源于代码中一处嵌套if标签缺少对应闭合,同时存在一处参数引用的语法错误。单独运行片段时逻辑简单未暴露问题,组合后嵌套结构的闭合缺陷触发报错。

错误点说明

  1. 未闭合的if标签:针对parameters.select_comparison的外层if(包含year、period分支和else子逻辑),缺少对应的{% endif %}闭合标签。
  2. 参数引用语法错误:代码中{ parameters parameters.select_timeframe_advanced._parameter_value }不符合Looker Liquid规范,应改为{% parameter parameters.select_timeframe_advanced._parameter_value %}。

修正后的代码

{% if parameters.select_timeframe_advanced._parameter_value == "ytd" %}
  CASE
    WHEN ${order_date} BETWEEN DATE_TRUNC(DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, YEAR), MONTH) AND DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, DAY)
      THEN ${selected_dynamic_timeframe_advanced}
    WHEN ${order_date} BETWEEN DATE_TRUNC(DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), YEAR), MONTH) AND DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), MONTH)
      THEN ${selected_dynamic_timeframe_advanced}
    ELSE NULL
  END
{% else %}
  {% if parameters.select_timeframe_advanced._parameter_value == 'week' %}
    {% if parameters.select_comparison._parameter_value == "year" %}
      CASE
        WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}(Monday)) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %}(Monday))
          THEN ${selected_dynamic_timeframe_advanced}
        WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}(Monday)) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), {% parameter parameters.select_timeframe_advanced %}(Monday))
          THEN ${selected_dynamic_timeframe_advanced}
        ELSE NULL
      END
    {% elsif parameters.select_comparison._parameter_value == "period" %}
      CASE
        WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}(Monday)) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %}(Monday))
          THEN ${selected_dynamic_timeframe_advanced}
        WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}(Monday)) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 {% parameter parameters.select_timeframe_advanced %}(Monday)), {% parameter parameters.select_timeframe_advanced %}(Monday))
          THEN ${selected_dynamic_timeframe_advanced}
        ELSE NULL
      END
    {% else %}
      {% if parameters.select_comparison._parameter_value == "year" %}
        CASE
          WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced._parameter_value %}) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %})
            THEN ${selected_dynamic_timeframe_advanced}
          WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), {% parameter parameters.select_timeframe_advanced %})
            THEN ${selected_dynamic_timeframe_advanced}
          ELSE NULL
        END
      {% elsif parameters.select_comparison._parameter_value == "period" %}
        CASE
          WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %})
            THEN ${selected_dynamic_timeframe_advanced}
          WHEN DATE_TRUNC(${order_raw},  {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 {% parameter parameters.select_timeframe_advanced %}), {% parameter parameters.select_timeframe_advanced %})
            THEN ${selected_dynamic_timeframe_advanced}
          ELSE NULL
        END
      {% endif %}
    {% endif %} <!-- 新增:闭合外层select_comparison的if标签 -->
  {% endif %}
{% endif %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:45:40