Looker自定义PoP维度Liquid语法错误:if标签未闭合求助
Looker自定义PoP维度Liquid语法错误修复
问题分析
你遇到的“if标签未闭合”错误,源于代码中一处嵌套if标签缺少对应闭合,同时存在一处参数引用的语法错误。单独运行片段时逻辑简单未暴露问题,组合后嵌套结构的闭合缺陷触发报错。
错误点说明
- 未闭合的if标签:针对
parameters.select_comparison的外层if(包含year、period分支和else子逻辑),缺少对应的{% endif %}闭合标签。 - 参数引用语法错误:代码中
{ 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
相关产品推荐
相关产品推荐

