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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Vyacheslav777 от 31 августа 2015, 12:20:15

Название: Связь данных в таблицах при загрузке (Qlikview & Qlik Sense)
Отправлено: Vyacheslav777 от 31 августа 2015, 12:20:15
Добрый день! В ходе работы возникло несколько проблем со связью данных. Есть экслевский файл с несколькими вкладками, в которых различные данные. Несколько ключевых столбцов во вкладках совпадают, столбцы со значениями разные.

1) В Qlick данные, судя по всем связываются таким образом, что отображаются только данные которые есть во всех вкладках. Например, в первой вкладке имя покупателя, регион, год и количество покупок, во второй имя покупателя, регион, кол-во магазинов. Кол-во магазинов отображается неправильно, так как в этой вкладке есть данные, которых нет в первой и Qlick эти данные не учитывает и некорректно строит диаграмму. Попробовал добавить в первую вкладку недостающие данные, чисто формально, на диаграмме все появляется. Возможно, есть способы в скрипте прописать, чтобы вкладки не полностью зависели друг от друга или что-нибудь в этом роде??

2) Вторая проблема, возможно, из того же русла. Диаграммы на листе связаны таким образом, что, когда выбираешь критерий для одной диаграммы, меняются и другие, так как, видимо, на них присутствуют общие задействованные из файла excel поля. Как можно их разделить, чтобы при выборе критерия в списке, относящегося к конкретной диаграмме, изменялась только она??

Надеюсь, все понятно описал. Заранее спасибо!
Название: Re: Связь данных в таблицах при загрузке
Отправлено: admin от 31 августа 2015, 01:10:55
Добрый день.
Вы можете выложить фрагмент загрузки excel-файла?
Обычно, один лист в Excel = одна таблица в модели данных (но не обязательно).
Если поля называются одинаково, а суть разная - переименуйте их в скрипте, чтобы не устанавливалась связь.
Второй вопрос не совсем понятен, факт изменения окружения при выборе какого-либо измерения - это нормальный режим работы Qlikview.
Название: Re: Связь данных в таблицах при загрузке
Отправлено: Vyacheslav777 от 31 августа 2015, 01:31:50
Directory;
LOAD [Customer Rig] as Customer,
     [Parrent Account R] as PA,
     NWA,
     Year(Years) as Year,
     Month(Months) as Month,
     Date(MonthStart(Months), 'MMM YYYY') As MonthYear,
     [Name of Rig],
     Number
FROM
Data.xlsx
(ooxml, embedded labels, table is [Rig count]);


Directory;
LOAD [Customer Drill] as Customer,
     [Parrent Account D] as PA,
     NWA,
     [Type of well],
     Year(Years) as Year,
     Month(Months) as Month,
     Date(MonthStart(Months), 'MMM YYYY') As MonthYear,
     Indicator,
     Value
FROM
Data.xlsx
(ooxml, embedded labels, table is [Drilling data]);


Directory;
LOAD [Parrent total],
     [Type of well],
     Year(Years) as Year,
     Indicator,
     Totals
FROM
Data.xlsx
(ooxml, embedded labels, table is [Drilling totals]);


Directory;
LOAD
     [Parrent Account O] as PA,
     NWA,
     Year(Years) as Year,
     Volumes
FROM
Data.xlsx
(ooxml, embedded labels, table is [Oil production]);


Вот скрипт загрузки из файла Excel. Поля одинаковые, то есть например поле Parrent account, а компании в списке могут отличаться, но это все паррент аккаунты, то есть одна категория. Это поле есть в нескольких таблицах, но остальные поля отличаются. Таким образом, в одной таблице есть какая-то категория, в другой ее нет, но объединяющее поле одно. Второй вопрос об этом же. Когда выбираю в списке категорию, которая есть в одной таблице, он подстраивает по логике общую категорию на всех диаграммах, из-за этого в других таблицах данные некорректно отображаются.     
Название: Re: Связь данных в таблицах при загрузке
Отправлено: Vyacheslav777 от 31 августа 2015, 01:36:45
То есть например в одной таблице в аккаунтах стоят компании Ромашка, Магнит и Камень, соответствующие им значения например продажи и регион, а в другой Ромашка, Магнит и Солнце и соответствующие им значение, но же не продажи, а количество контрактов и например тип контракта оптом или в розницу. Я естественно объединяю категорию компании, чтобы разместить на одном листе несколько диаграмм и был один список. Выбираю тип контракта, по идее должна меняться диаграмма, относящаяся ко второй таблице, а меняется все и в других диаграммах Qlick режет значения и показывает только то, что есть в обеих таблицах.
Название: Re: Связь данных в таблицах при загрузке
Отправлено: admin от 31 августа 2015, 01:52:02
Понятно, вам необходимо определиться с моделью данных.
Та модель, которая формируется по вашему скрипту никуда не годится.
Почитайте  по загрузке и моделированию данных (http://help.qlik.com/sense/2.0/ru-RU/pdf/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D0%B8%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.pdf)
И неплохая подборка материалов по Qlikview в блоге Шамаева Ивана (http://ivan-shamaev.ru/qlikview-theory-and-practice/)
Название: Re: Связь данных в таблицах при загрузке
Отправлено: OlgaTomskaya от 02 сентября 2015, 12:05:29
Добрый день! Ну а все-таки в чем именно проблема и что именно нужно исправить?
Проблема в неверной загрузке? Скрипте? Что не так? и где?
Подскажите решение, как эксперт :)
Название: Re: Связь данных в таблицах при загрузке
Отправлено: kvv от 02 сентября 2015, 12:39:04
Добрый день.
Как уже говорилось выше, решение и для первого и второго вопроса:
     - делать соответствующую модель данных;
     - или использовать Set Analysis (Анализ Множеств).

Суть Set Analysis в том, что графики/таблицы могут не зависеть от некоторых выбранных фильтров.
Название: Re: Связь данных в таблицах при загрузке
Отправлено: admin от 02 сентября 2015, 12:45:24
Привет,
Начните строить модель поэтапно.
Выделите из массива данных справочные сведения, реестры событий, показатели ...
Сложно сказать, как именно надо не зная сути сведений.
Название: Re: Связь данных в таблицах при загрузке
Отправлено: bibis от 02 сентября 2015, 12:54:48
Добрый день. Ну если нет желания облагородить модель данных , пишите перед каждым LOAD
, после первого,  OUTER  JOIN  , тоже вариант в общем-то  :o

По 2му вопросу, как уже сказали , это стандартное поведение qv , если нужно от него избавиться-  например можно использовать альтернативные состояния. В справке про них достаточно подробно изложено.
Или да, как сказали выше сет анализ.  {<chtotam=>} в выражении заставляет его игнорировать выборки в поле chtototam
Название: Re: Связь данных в таблицах при загрузке
Отправлено: admin от 03 сентября 2015, 01:55:45
Как успехи?
Если есть вопросы и данные, которые не хотелось бы "светить" в публичном доступе. можете задать их в личных сообщениях.