Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 17, 2018, 03:42:40 pm

Автор Тема: Резидентная загрузка  (Прочитано 479 раз)

Оффлайн HalLex

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ru
  • Рейтинг: +4/-0
    • Просмотр профиля
Резидентная загрузка
« : Май 02, 2018, 11:25:41 pm »
Здравствуйте,

Есть такая таблица

Таблица1

  Дата        Наименование         Цена

01.01.2018      Апельсины           100
02.01.2018      Апельсины           110
03.01.2018      Апельсины           115
04.01.2018      Апельсины           110
01.01.2018       Бананы               100
02.01.2018       Бананы               110
03.01.2018       Бананы               115
04.01.2018       Бананы               110

Необходимо загрузить ее таким образом

    Наименование    ПерваяПокупка   Цена1   ПоследняяПокупка  Цена2
       Апельсины         01.01.2018        100             04.01.2018        110
         Бананы            01.01.2018        100             04.01.2018        110


Сделать это нужно в скрипте загрузки.
Что то не могу сообразить, какими средствами.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Re: Резидентная загрузка
« Ответ #1 : Май 03, 2018, 07:42:53 am »
Привет, все просто:

Пример для половины таблицы, дальше по подобию. Главное - уловить суть преобразований.
t1:
LOAD * INLINE [
    Дата,        Наименование,         Цена
    01.01.2018,      Апельсины,          100
    02.01.2018,      Апельсины,          110
    03.01.2018,      Апельсины,           115
    04.01.2018,      Апельсины,           110
    01.01.2018,       Бананы,               100
    02.01.2018,       Бананы,              110
    03.01.2018,       Бананы,               115
    04.01.2018 ,      Бананы,               110
];

t2:
load Наименование,
date(Min(Дата)) as ПерваяДата
Resident t1
Group by Наименование;

left Join (t2)
load Наименование,
Дата as ПерваяДата,
Цена as ЦенаПервойДаты
Resident t1;

Следует учесть, что может быть несколько цен на одну дату, тогда следует определиться с вариантом по цене (мин, макс, сред и т.д.)

Оффлайн HalLex

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ru
  • Рейтинг: +4/-0
    • Просмотр профиля
Re: Резидентная загрузка
« Ответ #2 : Май 04, 2018, 05:21:16 pm »
Доброго дня,
Спасибо!!!

Да, когда знаешь, все просто)
Я изначально пошел не верным путем, замучился и решил уже идти за помощью.
Теперь все ок!

Цена на дату предполагается одна.
Есть другой нюанс.
Таблица фактов (t1) может иметь дату и наименование, но не иметь цены. Это значит, что в эту дату наименование не закупалось. Таблица подтягивается из эксель, является шаблонной.
Получается, при загрузке, первая цена будет "-", если товар не закупался в первую дату, то же самое, может быть и в последнюю.
Тут как быть? При загрузке фактов, выполнять проверку наличия цены и если пусто, то не загружать эту дату?

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

Re: Резидентная загрузка
« Ответ #2 : Май 04, 2018, 05:21:16 pm »

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 85
  • Страна: ru
  • Рейтинг: +11/-0
    • Просмотр профиля
Re: Резидентная загрузка
« Ответ #3 : Май 05, 2018, 06:55:11 am »
все верно.

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

Re: Резидентная загрузка
« Ответ #3 : Май 05, 2018, 06:55:11 am »