Приветствую. в Luxms Очень не хватает такого функционала, как “Переменные” (если пользоваться терминологией QS).
Суть их просто, а функциональность велика.
Заводим переменную vMaxYear и делаем ей определение Max(Year_NCode). Следовательно в этой переменной будет хранится значение максимального года. При этом переменная оперативно пересчитывается при накладывании фильтров. Например в данных 2010-2023, а выбрали 2019-2022, то и мах год будет = 2022.
Что можно дальше делать с этими переменными?
Использовать, как параметры в мерах. (Case when Year_NCode=$(vMaxYear) then Fact_1 End - посчитать сумму за максимальный год)
Использовать для формирования заголовков. (‘Сумма за ’ & $(vMaxYear) & ’ год’)
И другое (предложите свои варианты в комментариях)
Очень прошу реализовать. Открыт к дискуссии!
Согласен. Это революционный скачок был бы. Начиная от динамичных элементов, которые бы могли принимать функции и потом подставлять их в параметры дешей. И заканчивая промежуточными вычислениями, вроде решения задач"необходимо вывести в пончик топ 20 значений в зависимости от выбранной компании, остальные посчитать как “Прочее”". Сейчас это технически невозможно реализовать.
WITH vMaxYearT AS ( --Определяем МАХ год
SELECT
Max(year_ncode) as vMaxYear
FROM
sch_ekaterina_v_volkova.total_margin_rur_amt_plan_fact
WHERE ${filters()}
),
vMaxMonthT AS ( --Определяем МАХ месяц в МАХ году
SELECT
Max(monthofyear_ncode) as vMaxMonth
FROM
sch_ekaterina_v_volkova.total_margin_rur_amt_plan_fact, vMaxYearT
WHERE year_ncode = vMaxYear AND ${filters()}
)
SELECT
year_ncode as year_ncode,
monthofyear_ncode as monthofyear_ncode,
year_month as year_month,
mr_name as mr_name,
ufps_name as ufps_name,
segment_name as segment_name,
vs_name as vs_name,
fact_1_value as fact_1_value,
plan_1_value as plan_1_value,
vMaxYear as vMaxYear,
vMaxMonth as vMaxMonth
FROM
sch_ekaterina_v_volkova.total_margin_rur_amt_plan_fact, vMaxYearT, vMaxMonthT
WHERE ${filters()}