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

Автор Тема: Связать несвязуемое :)  (Прочитано 137 раз)

Оффлайн DmitryK

  • Наставник
  • **
  • Сообщений: 61
  • Страна: ru
  • Рейтинг: +20/-0
  • QlikView v.11.20
    • Просмотр профиля
Связать несвязуемое :)
« : Октябрь 24, 2017, 06:20:35 pm »
Добрый вечер коллеги!

Возможно вопрос глуп, но толи я старею, толи просто устал и ничего не могу придумать.

Я как всегда на работе и возможности прикрепить пример нету. Так что опишу задачку так, на пальцах.

Есть 3 таблицы фактов (Товары): "Списано", "Поступило", "Транзакции".
Все 3 таблицы выполняют свои роли, поэтому Конкатинацию на них не сделать.
В будущем буду делать общую таблицу фактов с общими справочниками, но сейчас такой возможности нет, поэтому нужна помощь с альтернативным решением проблемы, а проблема заключается вот в чем:

Как я и говорил выше есть:
- 3 таблицы
- в каждой таблице свои справочники по номенклатуре

Необходимо реализовать задачу по выбору значения с фильтра (INLINE) в этих таблицах.

Наборы номенклатур в таблицах в основном совпадают, но есть и различия, поэтому взять одну из номенклатур за эталон - нельзя.

Например:
Наш эталонный справочник содержит в себе все возможные варианты номенклатур:

Яблоки,
Груши,
Помидоры,
Арбузы,
Дыни

Списано:
Груши,
Помидоры

Поступило:
Арбузы,
Дыни,
Помидоры

Транзакции:
Яблоки,
Груши,
Помидоры,
Арбузы

Т.е. при выборе "Помидоры" в эталоне-надо чтобы выбирались помидоры во всех таблицах
А при выборе "Дыни", только в таблице поступило.

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

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Re: Связать несвязуемое :)
« Ответ #1 : Октябрь 24, 2017, 07:00:46 pm »
Привет.
Надо развеяться  ;) освежиться, и все пойдет еще лучше.

А по теме - модель не стоит усложнять.
Помнишь операции с дробями в школе? Общий знаменатель - знакомо?
Так и здесь - номенклатуры отличаются?, х..н с ними. Сделай интегрированный справочник из всех таблиц фактов - это не сложно.
В конце концов, по смыслу это один массив и пляшем дальше от этого.

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 53
  • Страна: by
  • Рейтинг: +22/-0
    • Просмотр профиля
Re: Связать несвязуемое :)
« Ответ #2 : Октябрь 25, 2017, 10:32:52 am »
А эти 3 справочника отличаются хоть чем-то кроме набора данных? Если нет, то почему не использовать эталонный.

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

Re: Связать несвязуемое :)
« Ответ #2 : Октябрь 25, 2017, 10:32:52 am »

Оффлайн DmitryK

  • Наставник
  • **
  • Сообщений: 61
  • Страна: ru
  • Рейтинг: +20/-0
  • QlikView v.11.20
    • Просмотр профиля
Re: Связать несвязуемое :)
« Ответ #3 : Октябрь 25, 2017, 04:43:10 pm »
Привет.
Надо развеяться  ;) освежиться, и все пойдет еще лучше.

А по теме - модель не стоит усложнять.
Помнишь операции с дробями в школе? Общий знаменатель - знакомо?
Так и здесь - номенклатуры отличаются?, х..н с ними. Сделай интегрированный справочник из всех таблиц фактов - это не сложно.
В конце концов, по смыслу это один массив и пляшем дальше от этого.


Такой подход и будет, но позже. 3 таблицы фактов, только с набором ключей и значениями и все они будут связаны с таблицей фактов, которая будет содержать в себе все ключи для факта и справочников.
В общем буду делать их хауса - классическую звезду)

А эти 3 справочника отличаются хоть чем-то кроме набора данных? Если нет, то почему не использовать эталонный.


Да - эти 3 справочника берутся из 3-х баз. К эталонному пока еще не пришли. Как только появится эталонный (В процессе обработки он), то и буду мучить модель. Пока что это не совсем реально сделать, чтобы не сломать отчет.

Да и все упирается во время. Все стандартно, задач много, все задачи должны быть сданы "вчера" и все в приоритете :-)