Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: RinatG от 08 мая 2020, 09:57:40

Название: Управление полями дат
Отправлено: RinatG от 08 мая 2020, 09:57:40
Есть таблица с несколькими полями дат (12 полей с датами), которые несут разный смысл. Как научили на форуме, сформировал календарь с наименьшей единицей измерения времени "Дата". Но так как полей с датами в базе данных много, а QV не позволяет в рамках одной таблицы именовать поля одинаково, чтобы реализовать возможность манипуляций всеми полями дат, мне пришлось размножить через резидентную загрузку мою таблицу на 12, а исходную Drop-ить. То есть изначально была таблица с 12 полями дата + куча иных фильтрующих полей и данные на 20 тыс.строках. В итоге в памяти теперь висит 12 похожих друг на друга таблиц в 20 тыс строк каждая с отличием только по полю "Дата". Возможно ли это другим способом решить управление датами, например, через "анализ множеств " в выражениях, чтобы не забивать память. Пытался не размножая исходную таблицу вывести гистограмму вот таким выражением:
Sum ({$<Дата1=Дата>} varF16), но ничего не получилось.
Чувствую, есть решение отличное от описанного выше с размножением, прошу дать направление.
Название: Re: Управление полями дат
Отправлено: nemp от 08 мая 2020, 06:17:00
Вроде бы, проще оставить одну таблицу данных, но сделать 12 календарей - каждый со своим названием. Например, через qualify *
В интерфейсе можно сделать выбор нужного календаря. Ввести переменную - переключатель и выводить тот или другой календарь по условию.
Название: Re: Управление полями дат
Отправлено: RinatG от 08 мая 2020, 09:26:38
Интересное предложение, но, боюсь, Пользователя введет в ступор большое количество фильтров по датам. Тем более Дата завязана на несколько дашбордов и скрытые вариации с датами не будут видны - сложно будет понять цифры и графики. Пользователем воспринимается только один временной горизонт - главный, сквозной по всем дашбордам. Нужно как-то через анализ множеств с привязкой к конкретной кнопке управления переменной для выбора поля даты по которому выстраивается конкретный график или, может, есть директива QV которая блокирует формирование ассоциации по указанным полям.
Название: Re: Управление полями дат
Отправлено: govorun от 09 мая 2020, 08:30:40
Не видя таблицы сложно что-то дельное предложить, но как вариант (если 12 полей даты статичны) рассмотреть Кросстаблицу, где в одном поле будут 12 статичных дат.
Ну и конечно 12 отдельных/схожих таблиц - это конечно перебор. Хотя, каждый сам себе художник...
Название: Re: Управление полями дат
Отправлено: RinatG от 09 мая 2020, 09:50:45
Вот для примера таблицу сделал
Data:
LOAD * INLINE [
Дата1, Дата2, Дата3, Дата4, Дата5, Дата6, Дата7, Дата8, Дата9, Дата10, Дата11, Дата12, Фильтр1, Фильтр2, Фильтр3, ПоказателиТого, ПоказателиСего
01.02.2020, 02.02.2020, 03.03.2020, 04.04.2020, 05.05.2020, 06.06.2020, 07.07.2020, 08.08.2020, 09.09.2020, 04.10.2020,  04.11.2020, 04.04.2020, JRJ, Россия, БНТ100, 500, 25]
Его резидентно выгружаю в таблицу tab1 со всеми полями, поочередно заменяя поле даты "Дата1 as Дата". Так 12 раз, потом Drop table Data.

Что значит 12 полей статичны? Расскажите, пжлста, подробнее про этот вариант с кросс таблицей
Название: Re: Управление полями дат
Отправлено: nemp от 09 мая 2020, 12:53:45
Цитата: RinatG от 08 мая  2020, 09:26:38  Интересное предложение, но, боюсь, Пользователя введет в ступор большое количество фильтров по датам. Тем более Дата завязана на несколько дашбордов и скрытые вариации с датами не будут видны - сложно будет понять цифры и графики. Пользователем воспринимается только один временной горизонт - главный, сквозной по всем дашбордам. Нужно как-то через анализ множеств с привязкой к конкретной кнопке управления переменной для выбора поля даты по которому выстраивается конкретный график или, может, есть директива QV которая блокирует формирование ассоциации по указанным полям.
Если главная дата - одна, и шкала времени всегда по ней, то для чего тогда остальные даты? Можно сделать выбор остальных дат в альтернативных состояниях и, при необходимости, по кнопке копировать выборку в основное состояние.
Название: Re: Управление полями дат
Отправлено: RinatG от 09 мая 2020, 05:09:34
Цитата: nemp от 09 мая  2020, 12:53:45  Если главная дата - одна,
. Почему так решили? Все даты главные - они несут в себе разный смысл
Название: Re: Управление полями дат
Отправлено: govorun от 09 мая 2020, 07:56:06
Цитата: RinatG от 09 мая  2020, 09:50:45  Вот для примера таблицу сделал
Я все-равно не понимаю сути Вашей задачи/проблемы. Закинул пример в Клик и ничего не понял..
Что касается кросс таблицы, то во вложении пример. 
ВЕРХНЯЯ таблица - исходник.
НИЖНЯЯ таблица - результат применения CrossTable.
Вы уж сами посмотрите - годится Вам такое или нет.11.jpg
Название: Re: Управление полями дат
Отправлено: RinatG от 10 мая 2020, 12:22:25
Суть проблемы в том, что Есть календарь с полем "Дата" и есть огромная таблица с полями "Дата1"..."Дата12" и другими полями.
Для построения гистограмм с измерением "Дата" от календаря и возможности представления данных в зависимости от выбранного поля даты, приходится загружать 12 экземпляров исходной таблицы и ассоциировать каждое поле с датой по типу Дата1 as Дата и ко всем остальным полям присоединять суффикс по наименованию экземпляра таблицы, чтобы между разными экземплярами исходной базы не было ассоциаций. Рисую гистограмму и в зависимости от значения переменной для агрегирования подсовываю соответствующее поле: pick(n, Стоимость_1,Стоимость_2,Стоимость_3,...,Стоимость_12). Стоимость_1...Стоимость_12 - это экземпляры поля "Стоимость" из исходной таблицы. Проблема в том, чтобы реализовать возможность анализа по всем полям с датами генерируются 12 похожих таблиц в памяти каждая по 20 тыс.строк. Надеюсь смог раскрыть суть вопроса и проблемы.

Подход cross таблицы уже пробовал  (с названием не сразу разобрался), объем данных не при этом не меньше генерируется. Для каждой даты из календаря приходится держать переменные под все поля дат.
Название: Re: Управление полями дат
Отправлено: govorun от 10 мая 2020, 10:04:09
Набросал себе немного данных, нарисовал гистограмму

Меня смутило
Цитата: RinatG от 10 мая  2020, 12:22:25  Для построения гистограмм с измерением "Дата"

Из HELPA кликовского:

Существуют ограничения, связанные с использованием измерения в гистограмме.

Измерение должно представлять собой числовое поле.
Использование основного измерения, созданного с помощью редактора выражения, не поддерживается даже в том случае, если созданное поле является числовым.
Измерение не может быть основано на функции агрегирования.
Название: Re: Управление полями дат
Отправлено: RinatG от 11 мая 2020, 11:29:55
поле "Дата" из созданного календаря - это ось Х. Добавляется во вкладке "Измерения", блок "Используемые измерения". Выражение -агрегирование по полю "Стоимость". Так работает Qlik! Не понял, что Вас смущает?
Название: Re: Управление полями дат
Отправлено: govorun от 11 мая 2020, 08:20:35
Вы строите гистограмму или что-то другое?
Цитата: RinatG от 10 мая  2020, 12:22:25  Для построения гистограмм с измерением "Дата"
Я написал Вам про ограничения при построении гистограмм.
Вы можете показать свою гистограмму, где по оси X - поле Дата?