Dynamic timeframe using parameter

I have created this parameter , dimension and measure in LookML

Parameter:

parameter: select_timeframe {

label: “Select Timeframe”

type: unquoted

default_value: “month”

allowed_value: {

value: “year”

label: “Years”

}

allowed_value: {

value: “quarter”

label: “Quarters”

}

allowed_value: {

value: “month”

label: “Months”

}

allowed_value: {

value: “week”

label: “Weeks”

}

allowed_value: {

value: “day”

label: “Days”

}

}

Dimension:
dimension: selected_dynamic_timeframe {

label_from_parameter: parameters.select_timeframe

description: “Use this dimension alongside the "Select Timeframe" filter to be able to dynamically change between the date, week, month, quarter or year dimensions”

alias: [dynamic_timeframe]

type: string

sql:

{% if parameters.select_timeframe._parameter_value == ‘day’ %}

${order_date}

{% elsif parameters.select_timeframe._parameter_value == ‘week’ %}

${order_week}

{% elsif parameters.select_timeframe._parameter_value == ‘year’ %}

${order_year}

{% elsif parameters.select_timeframe._parameter_value == ‘quarter’ %}

${order_quarter}

{% else %}

${order_month}

{% endif %}

;;

}

Measure:

measure: total_Sales {

type: sum

value_format: “$0.0," M"”

sql: ${order_quantity}*${products.product_price} ;;

}

When I am using these fields in the visualization and selecting quarter in timeframe, it is giving me LookMl error with this error detail :


However when I am just changing the value in parameter for label ‘Quarters’ from ‘quarter’ to “Quarter’ (i.e. making ‘q’ to ‘Q’ in the value) and same I do in the dimension as well as shown below:

Parameter:

parameter: select_timeframe {

label: “Select Timeframe”

type: unquoted

default_value: “month”

allowed_value: {

value: “year”

label: “Years”

}

allowed_value: {

value: “Quarter”

label: “Quarters”

}

allowed_value: {

value: “month”

label: “Months”

}

allowed_value: {

value: “week”

label: “Weeks”

}

allowed_value: {

value: “day”

label: “Days”

}

}

Dimension:

dimension: selected_dynamic_timeframe {

label_from_parameter: parameters.select_timeframe

description: “Use this dimension alongside the "Select Timeframe" filter to be able to dynamically change between the date, week, month, quarter or year dimensions”

alias: [dynamic_timeframe]

type: string

sql:

{% if parameters.select_timeframe._parameter_value == ‘day’ %}

${order_date}

{% elsif parameters.select_timeframe._parameter_value == ‘week’ %}

${order_week}

{% elsif parameters.select_timeframe._parameter_value == ‘year’ %}

${order_year}

{% elsif parameters.select_timeframe._parameter_value == ‘Quarter’ %}

${order_quarter}

{% else %}

${order_month}

{% endif %}

;;

}

When I use these fields in the visualization keeping the measure same, it gives me the correct visualization.

How just capitalizing the first letter of ‘quarter’ works and without it doesn’t.

1 Like