Использование значения по умолчанию для параметра даты в метабазе - PullRequest
0 голосов
/ 16 февраля 2019

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

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

1 Ответ

0 голосов
/ 17 февраля 2019

Я разобрался, как это решить.Сначала я заменил целое предложение между полевым фильтром.Затем я переписал весь запрос, сгенерированный метабазой.По некоторым странным причинам запрос, сгенерированный метабазой с большим количеством псевдонимов, не может быть запущен драйвером 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)
...