Использование значения по умолчанию для параметра даты в метабазе

В метабазе я хочу иметь запрос, который получает два параметра типа date, но если они не предоставлены, вместо этого используются некоторые значения по умолчанию. Это пример предложения между, которое я использовал для достижения этой цели, но потерпел неудачу. Кажется, что когда значение не передается в качестве параметра, в запросе задаются переменные, отличные от null

BETWEEN COALESCE(date({{start_date}}),subdate(current_date, interval 1 month))
AND COALESCE(date({{end_date}}),subdate(current_date, 1))

1 ответ

Решение

Я разобрался, как это решить. Сначала я заменил целое предложение между полевым фильтром. Затем я переписал весь запрос, сгенерированный метабазой. По некоторым странным причинам запрос, сгенерированный метабазой с большим количеством псевдонимов, не может быть запущен драйвером MariaDB, который я использую. Автоматически сгенерированный запрос по метабазе:

SELECT count(*) AS `count`, `orders`.`city` AS `city`, `orders`.`status` AS `status`, `orders`.`transport_type` AS `transport_type`,
date(`orders`.`launched_at`) AS `launched_at`
FROM `orders`
WHERE (date(`orders`.`deleted_at`) IS NULL
   AND {{filter_date}}
GROUP BY `orders`.`city`, `orders`.`status`, `orders`.`transport_type`, date(`orders`.`launched_at`)
ORDER BY `orders`.`city` ASC, `orders`.`status` ASC, `orders`.`transport_type` ASC, date(`orders`.`launched_at`) ASC

Затем этот вопрос может быть добавлен в панель инструментов. В режиме редактирования панели инструментов виджеты фильтра (или введите дату здесь) могут быть использованы для фильтрации результатов вопроса. Одна вещь, которая раздражала меня, - то, что приборная панель должна быть сохранена, чтобы обновить данные в карте. Это мой последний запрос:

select count(*), orders.city, orders.status, orders.transport_type, date(orders.launched_at)
from orders
where (date(orders.deleted_at)) is NULL
        AND {{filter_date}}
GROUP BY orders.city, orders.status, orders.transport_type, date(orders.launched_at)
ORDER BY orders.city, orders.status, orders.transport_type, date(orders.launched_at)
Другие вопросы по тегам