Выборка данных в диапазоне дат (Qlikview)

Автор Multicvet, апреля 11, 2014, 09:09:56 am

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

Multicvet

апреля 11, 2014, 09:09:56 am Последнее редактирование: июня 14, 2015, 03:30:35 pm от admin
Здравствуйте!

Только начинаю изучать QV, поэтому не судите строго за, уверен, простой вопрос для вас.

У меня две таблицы - План продаж помесячный и Накладные
Делаю прямую таблицу, где хочу получить:

- Период плана (Дата начала и Дата окончания) - сделал
- Плановую сумму - сделал
- Фактическую сумму

Как в прямой таблице указать, что фактическая сумма (т.е. сумма по накладным), должна рассчитываться в диапазоне плана?

Заранее спасибо за ответ!

admin

апреля 11, 2014, 09:43:37 am #1 Последнее редактирование: апреля 11, 2014, 09:53:21 am от admin
День добрый.
Не совсем понятно по составу измерений.
Хотелось бы посмотреть на модель данных (Ctrl-T, Копировать изображение, и вложением или через галерею в сообщение на форум).
Там где есть поля даты, сложно обойтись без календаря. Поэтому потребуется добавить календарь.
Далее, исходя из состава таблиц, потребуется определится с моделью данных, т.е. сколько таблиц с фактами будем использовать. Думаю, что надо будет объединить план с фактом в одну.
Ну и, без расширенной фильтрации в выражениях диаграмм тоже не обойтись.

По одной таблице фактов, к примеру:
вариант 1
признак,дата, номенклатура,покупатель, количество, сумма  (где признак= план или факт)

вариант 2
дата, номенклатура,покупатель, количество плановое, сумма плановая, количество факт, сумма факт

Тогда для получения суммы в первом случае потребуется использовать фильтрацию по признаку,
во втором - достаточно будет посчитать сумму по плановым показателям.
Результат будет получен в обоих случаях, а о том какой вариант правильнее, на небольших данных не принципиально.

Multicvet

План:

   
      
      
      
      
   
   
      
      
      
      
   
   
      
      
      
      
   
   
      
      
      
      
   
Дата началаДата окончанияНазвание планаПлан
01.01.201431.01.2014Январь100
01.02.201428.02.2014Февраль200
01.03.201431.02.2014Март300


Факт

   
      
      
   
   
      
      
   
   
      
      
   
   
      
      
   
Дата накладнойФакт
15.01.20145
20.01.201410
17.03.201420


План-факт - Который я хочу получить

   
      
      
      
   
   
      
      
      
   
   
      
      
      
   
   
      
      
      
   
Название планаПланФакт
Январь10015
Февраль2000
Март30020



Попробовал сделать как советуют англоязычные форумы- Sum({<ДАТА_НАКЛАДНОЙ= {">=$(=Date(ДАТА_НАЧАЛА)) <=$(=Date(ДАТА_ОКОНЧАНИЯ))"}>} ФАКТ)

Но функция не отрабатывает, выводит нули.


admin

Какой смысл в датах начала и конца месяца плана?
Если план месячный без дат продаж, то принимаем дату плана скажем начало месяца за дату формирования плана.
Дату окончания убираем, "Дата начала" и "Дата накладной"  - переименуем в Дата.
Формируем календарь с полем Дата, Месяц
и получаем отчеты по месяцу. Связь будет через "Дата".
Как вариант. навскидку.

Multicvet

Спасибо!

Календарь через Объект "Календарь/Ползунок"?

admin


Multicvet

Спасибо за ответ!

Пробовал настроить - получилось на 50%. Не сохранил данные. Сейчас заново настрою, отпишу. Но, чувствую уже близок к результату!

Multicvet

апреля 15, 2014, 12:33:50 pm #7 Последнее редактирование: апреля 15, 2014, 01:53:21 pm от Multicvet
Получилось! Спасибо!

Правда сделал без календаря.

Все же не понятно почему через Sum({<ДАТА_НАКЛАДНОЙ= {">=$(=Date(ДАТА_НАЧАЛА)) <=$(=Date(ДАТА_ОКОНЧАНИЯ))"}>} ФАКТ) не отработало?

admin

Чтобы фильтровать диапазон дат, следует использовать переменные
Скажем, vFromDate и vToDate.
Переменные привязываем на объекты Ползунок/Календарь.

Выражение для кнопки, по нажатию которой устанавливается фильтр на диапазон дат
='>=' & date(vFromDate, 'DD/MM/YYYY') & '<=' & date(vToDate, 'DD/MM/YYYY')
Т.о. выбирая переменные в календариках и нажимая кнопку мы даем условие на фильтрацию диапазона дат.

Без календаря обойтись сложно.

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