Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:37:14 pm

Автор Тема: Количество дней на остатках.  (Прочитано 2019 раз)

Оффлайн piton

  • Новичок
  • *
  • Сообщений: 22
  • Рейтинг: +5/-0
    • Просмотр профиля
Количество дней на остатках.
« : Февраль 03, 2015, 03:44:31 pm »
Здравствуйте!
Есть товарный отчет где имеются показатели:
Входящий остаток, приход, возврат, списание, исходящий остаток. Выводится сводной таблицей и остаток расчитывается выражением используя "SUM({<[Дата] = {"<$(=[ДатаС])"}>} .... Все приходы минус все расходы со дня открытия магазина". Отчет выводит данные за период "ДатаС" и "ДатаПо".
Сейчас просят добавить колонку "Количество дней за период когда товар был на остатках". Получается нужно чтобы на каждую дату в период С - По Просчитались остатки и просумировались дни когда остаток больше нуля. Можно ли это сделать не задавая новую таблицу с остатками на каждый день?

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Количество дней на остатках.
« Ответ #1 : Февраль 03, 2015, 03:47:56 pm »
Хороооший вопрос.
А какая модель, какие исходные данные?

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

Оффлайн piton

  • Новичок
  • *
  • Сообщений: 22
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Количество дней на остатках.
« Ответ #2 : Февраль 03, 2015, 04:30:30 pm »
Платформа QlikView 10. Данные отдельно таблица с календарем. И отдельная таблица где на каждую дату различные движения товаров, разными строчками. Я тоже отталкиваюсь от создания таблицы с остатками на каждый день. Минусы что теряется время на обновление такой таблицы и будет отъедать прилично памяти, так как дополнительных данных выйдет очень много.

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

Re: Количество дней на остатках.
« Ответ #2 : Февраль 03, 2015, 04:30:30 pm »

Оффлайн piton

  • Новичок
  • *
  • Сообщений: 22
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Количество дней на остатках.
« Ответ #3 : Февраль 03, 2015, 04:34:42 pm »
Остатки считаются так:
Входящий остаток:
 Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара прихода])
 - Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара реализация])
 - Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара выбытие])
 - Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара перемещение])
 + Sum({<[Дата] = {"<$(=[ДатаС])"}>}[Кол-во движения товара исходящий остаток])

Соответственно в исходящем ДатаС меняется на ДатаПо.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Количество дней на остатках.
« Ответ #4 : Февраль 03, 2015, 06:42:06 pm »
А зачем каждый раз пересчитывать таблицу с остатками.
Можно рассчитать остатки за предыдущие периоды и держать их в qvd-формате.
Расчет остатков текущего периода не должен вызвать проблем.
Память займется остатками, это факт.
Но как поведет себя приложение с расчетом остатков на каждый день выражениями?

Оффлайн piton

  • Новичок
  • *
  • Сообщений: 22
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Количество дней на остатках.
« Ответ #5 : Февраль 16, 2015, 04:37:56 pm »
Создал таблицу, обновляю только за открытый период, по времени около часа. В выражении работает.

count({<[Дата остаток] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Остаток на дату])
В отчет загружаю данные только с остатком, в итоге просто подсчитываю количество записей за период.
По памяти нагрузка увеличилась на треть.