Управление полями дат

Автор RinatG, мая 08, 2020, 09:57:40 am

« предыдущая - следующая »

RinatG

Есть таблица с несколькими полями дат (12 полей с датами), которые несут разный смысл. Как научили на форуме, сформировал календарь с наименьшей единицей измерения времени "Дата". Но так как полей с датами в базе данных много, а QV не позволяет в рамках одной таблицы именовать поля одинаково, чтобы реализовать возможность манипуляций всеми полями дат, мне пришлось размножить через резидентную загрузку мою таблицу на 12, а исходную Drop-ить. То есть изначально была таблица с 12 полями дата + куча иных фильтрующих полей и данные на 20 тыс.строках. В итоге в памяти теперь висит 12 похожих друг на друга таблиц в 20 тыс строк каждая с отличием только по полю "Дата". Возможно ли это другим способом решить управление датами, например, через "анализ множеств " в выражениях, чтобы не забивать память. Пытался не размножая исходную таблицу вывести гистограмму вот таким выражением:
Sum ({$<Дата1=Дата>} varF16), но ничего не получилось.
Чувствую, есть решение отличное от описанного выше с размножением, прошу дать направление.

nemp

Вроде бы, проще оставить одну таблицу данных, но сделать 12 календарей - каждый со своим названием. Например, через qualify *
В интерфейсе можно сделать выбор нужного календаря. Ввести переменную - переключатель и выводить тот или другой календарь по условию.

RinatG

Интересное предложение, но, боюсь, Пользователя введет в ступор большое количество фильтров по датам. Тем более Дата завязана на несколько дашбордов и скрытые вариации с датами не будут видны - сложно будет понять цифры и графики. Пользователем воспринимается только один временной горизонт - главный, сквозной по всем дашбордам. Нужно как-то через анализ множеств с привязкой к конкретной кнопке управления переменной для выбора поля даты по которому выстраивается конкретный график или, может, есть директива QV которая блокирует формирование ассоциации по указанным полям.

govorun

Не видя таблицы сложно что-то дельное предложить, но как вариант (если 12 полей даты статичны) рассмотреть Кросстаблицу, где в одном поле будут 12 статичных дат.
Ну и конечно 12 отдельных/схожих таблиц - это конечно перебор. Хотя, каждый сам себе художник...

RinatG

Вот для примера таблицу сделал
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 полей статичны? Расскажите, пжлста, подробнее про этот вариант с кросс таблицей

nemp

Цитата: RinatG от мая 08, 2020, 09:26:38 pmИнтересное предложение, но, боюсь, Пользователя введет в ступор большое количество фильтров по датам. Тем более Дата завязана на несколько дашбордов и скрытые вариации с датами не будут видны - сложно будет понять цифры и графики. Пользователем воспринимается только один временной горизонт - главный, сквозной по всем дашбордам. Нужно как-то через анализ множеств с привязкой к конкретной кнопке управления переменной для выбора поля даты по которому выстраивается конкретный график или, может, есть директива QV которая блокирует формирование ассоциации по указанным полям.
Если главная дата - одна, и шкала времени всегда по ней, то для чего тогда остальные даты? Можно сделать выбор остальных дат в альтернативных состояниях и, при необходимости, по кнопке копировать выборку в основное состояние.

RinatG

Цитата: nemp от мая 09, 2020, 12:53:45 pmЕсли главная дата - одна,
. Почему так решили? Все даты главные - они несут в себе разный смысл

govorun

мая 09, 2020, 07:56:06 pm #7 Последнее редактирование: мая 09, 2020, 07:59:07 pm от govorun
Цитата: RinatG от мая 09, 2020, 09:50:45 amВот для примера таблицу сделал
Я все-равно не понимаю сути Вашей задачи/проблемы. Закинул пример в Клик и ничего не понял..
Что касается кросс таблицы, то во вложении пример. 
ВЕРХНЯЯ таблица - исходник.
НИЖНЯЯ таблица - результат применения CrossTable.
Вы уж сами посмотрите - годится Вам такое или нет.Вам недоступны вложения в этом разделе.

RinatG

Суть проблемы в том, что Есть календарь с полем "Дата" и есть огромная таблица с полями "Дата1"..."Дата12" и другими полями.
Для построения гистограмм с измерением "Дата" от календаря и возможности представления данных в зависимости от выбранного поля даты, приходится загружать 12 экземпляров исходной таблицы и ассоциировать каждое поле с датой по типу Дата1 as Дата и ко всем остальным полям присоединять суффикс по наименованию экземпляра таблицы, чтобы между разными экземплярами исходной базы не было ассоциаций. Рисую гистограмму и в зависимости от значения переменной для агрегирования подсовываю соответствующее поле: pick(n, Стоимость_1,Стоимость_2,Стоимость_3,...,Стоимость_12). Стоимость_1...Стоимость_12 - это экземпляры поля "Стоимость" из исходной таблицы. Проблема в том, чтобы реализовать возможность анализа по всем полям с датами генерируются 12 похожих таблиц в памяти каждая по 20 тыс.строк. Надеюсь смог раскрыть суть вопроса и проблемы.

Подход cross таблицы уже пробовал  (с названием не сразу разобрался), объем данных не при этом не меньше генерируется. Для каждой даты из календаря приходится держать переменные под все поля дат.

govorun

Набросал себе немного данных, нарисовал гистограмму

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

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

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

Измерение должно представлять собой числовое поле.
Использование основного измерения, созданного с помощью редактора выражения, не поддерживается даже в том случае, если созданное поле является числовым.
Измерение не может быть основано на функции агрегирования.

RinatG

поле "Дата" из созданного календаря - это ось Х. Добавляется во вкладке "Измерения", блок "Используемые измерения". Выражение -агрегирование по полю "Стоимость". Так работает Qlik! Не понял, что Вас смущает?

govorun

Вы строите гистограмму или что-то другое?
Цитата: RinatG от мая 10, 2020, 12:22:25 amДля построения гистограмм с измерением "Дата"
Я написал Вам про ограничения при построении гистограмм.
Вы можете показать свою гистограмму, где по оси X - поле Дата?

Рейтинг@Mail.ru Яндекс.Метрика