Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 21, 2017, 07:23:45 am

Автор Тема: Кол-во изделий на гарантии  (Прочитано 2068 раз)

Оффлайн efro

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +6/-0
    • Просмотр профиля
Кол-во изделий на гарантии
« : Март 10, 2015, 12:47:58 pm »
Всем привет!
Есть задачка определить кол-во изделий на гарантии по состоянию на сегодня ("сегодня" каждый день, естественно, изменяется).
Для этого есть таблица с номерами изделий, датой ввода в эксплуатацию и датой снятия с гарантии.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #1 : Март 10, 2015, 01:56:43 pm »
Добрый день.
Чтобы можно было решить вашу задачу участниками форума, подготовьте пример исходных данных в табличном формате (для загрузки и тестирования) и контрольные цифры, если есть.

Оффлайн efro

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +6/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #2 : Март 10, 2015, 08:26:00 pm »
Спасибо за уточнение.
Выкладываю пример, отображающий имеющиеся данные.
I0001 - серийный номер изделия (поэтому и I).

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

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

Re: Кол-во изделий на гарантии
« Ответ #2 : Март 10, 2015, 08:26:00 pm »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #3 : Март 11, 2015, 08:10:23 am »
День добрый.
Решение простое, смотрим описание IntervalMatch.
Нам потребуется сформировать календарь и таблицу связей, с помощью указанной выше функции.
Скрипт:
tmp:
LOAD [Номер изделия],
     [Дата ввода в эксплуатацию],
     [Дата снятия с гарантии]
FROM
garant_demo.xlsx
(ooxml, embedded labels, table is Лист1);

tmp2:
LOAD min([Дата ввода в эксплуатацию]) as 'DateStart', max([Дата снятия с гарантии]) as 'DateEnd' Resident tmp ;

LET Date_Start = peek('DateStart',0,'tmp2');
LET Date_End = peek('DateEnd',0,'tmp2');
LET vStart = floor(Date_Start);
LET vEnd = floor(Date_End);
LET vNumOfDays = vEnd - vStart + 1;
DROP Table tmp2;

Date_src:
LOAD $(vStart) + Rowno() -1 as DateId AUTOGENERATE $(vNumOfDays);

Calendar:
LOAD
DateId,
date(DateId) as 'дата',
year(DateId) as 'год',
month(DateId) as 'месяц',
dual(month(DateId) & '-' & year(DateId),year(DateId) & num(month(DateId), '00')) as 'месяц-год'
RESIDENT Date_src;

Drop Table Date_src;

IntervalMatch (дата) LOAD [Дата ввода в эксплуатацию], [Дата снятия с гарантии] Resident tmp;

Для проверки строим диаграмму-таблицу с измерением "дата" и функцией Count ([Номер изделия]).
Получим количество изделий на гарантии на каждый день.

Оффлайн efro

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +6/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #4 : Март 16, 2015, 10:46:38 am »
Спасибо за подробный ответ!
По дням всё получилось.

А если ещё продолжить изыскания и попытаться найти среднее значение количества изделий на гарантии за месяц, то правильно ли я понимаю, что надо Aggr воспользоваться?

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #5 : Март 17, 2015, 08:47:27 am »
Да, aggr, avg в связке дают корректные результаты.
Во вложении небольшое эссе на тему использования AGGR(). Писал я сам, так что пользуйтесь.

Оффлайн efro

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +6/-0
    • Просмотр профиля
Re: Кол-во изделий на гарантии
« Ответ #6 : Апрель 06, 2015, 02:04:31 pm »
Да, aggr, avg в связке дают корректные результаты.
Во вложении небольшое эссе на тему использования AGGR(). Писал я сам, так что пользуйтесь.
День добрый!
Aggr пока не поддаётся :(, поэтому пока пришлось остановиться на выгрузке в Excel исходных данных (Год, Квартал, DateId, Тип аппарата) и построении сводной диаграммы вида:
Год, квартал - среднее по полю для каждого типа аппарата.

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

Re: Кол-во изделий на гарантии
« Ответ #6 : Апрель 06, 2015, 02:04:31 pm »