powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS добавляет "левые" таблицы в куб.
9 сообщений из 34, страница 2 из 2
MS AS добавляет "левые" таблицы в куб.
    #32726880
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov:

ПродуктИД не определяет однозначно Сегмент. А вот пара (ПродуктИД, Дата) - определяет, причём условие джойна должно быть ДатаПродажи between ДатаС and ДатаПо.
MS AS не поддерживает такие виды джойнов. (Jurii, а когнос?)


Я бы назвал эту задачу типичной и совсем не сложной, в Когносе она решается с помощью создания джойна по первой Вашей схеме и плюс к этому накладывается фильтр на запрос, что дата продажи между двумя Вашими другими датами. Фильтры у Когнос - это один из элементов управления формированием запроса для проектирования куба (кроме фильтров есть логические условия, ключевые слова, функции и т.п.).
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726920
Андрей Никифоров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovПредлагаю Вашему вниманию две реализации схемы БД


Если у вас brand не используется нигде больше как отдельный dimension, то имеет смысл включить его в продукты и получите чистую star (схема 2b :-))
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729618
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire: а каким Вы клиентом пользуетесь?
Ваш способ вычисления SOS сложнее в разы, кроме того (на сколько я понял), он возвращает результат только по сегменту Х. Надо сегменты-брэнды-продукты в строках, даты в колонках, SOS - в ячейках.

2 Jurii
Мне абсолютно всё равно как Вы назовёте мою задачу и похоже вы её не поняли. Мне не нужен фильр "дата продажи между двумя Вашими другими датами". Схема1: С помощью таблицы "Брэнды в сегментах" я абсолютно точно знаю в каком сегменте находится каждый брэнд в определённый момент времени. SQL запрос должен выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ...
FROM Сегменты INNER JOIN Брэнды INNER JOIN [Брэнды В Сегментах] ON
Брэнды.БрэндИД = [Брэнды В Сегментах].БрэндИД INNER JOIN Продукты ON
Брэнды.БрэндИД = Продукты.БрэндИД) INNER JOIN Продажи ON
Продукты.ПродуктИД = Продажи.ПродуктИД
AND Продажи.Дата between [Брэнды В Сегментах].ДатаС AND [Брэнды В Сегментах].ДатаПо
ON Сегменты.СегментИД = [Брэнды В Сегментах].СегментИД

Видите, здесь даты не конкретные, а из таблицы истории перехода брэндов между сегментами.
Код: plaintext
AND Продажи.Дата between [Брэнды В Сегментах].ДатаС AND [Брэнды В Сегментах].ДатаПо
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729690
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire: а каким Вы клиентом пользуетесь?

Клиент свой
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729721
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire: Ваш способ вычисления SOS сложнее в разы, кроме того (на сколько я понял), он возвращает результат только по сегменту Х.

Я решаю другую задачу. Если у вас около 50 KPI, то писать для каждого несколтко CM для расчета "доли", running total и т.п. - муторное заняте. Поэтому я делаю "долю" не на Measures, а на другом измерении, в приведенном примере на временной оси так как она выбрана для столбцов.

В приведенном MDX много других фишек, которае непосредственно для вычтсления доли не нужны, но необходимы для других дел, но это отдельная песня.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730636
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire
если не секрет сколько человеко-времени этот клиент разрабатывался и на чём он основан?

Про MDX я понял. Показатель у нас пока один - продажи. Поэтому пару СМ создать не лень :-)
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730803
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry Biryukov:

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


Я очень хорошо понял Вашу задачу, и не предлагал Вам использовать фиксированные даты. Фильтр о котором я говорил работает в пределах каждой строки, где есть 3 поля типа Дата (ДатаПродажи, ДатаС и ДатаПо), и этот фильтр отсеивает записи где первая дата не попадает в диапазон между двумя другими.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730873
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire
если не секрет сколько человеко-времени этот клиент разрабатывался и на чём он основан?

Про MDX я понял. Показатель у нас пока один - продажи. Поэтому пару СМ создать не лень :-)

1,5-2 человекогода, adomd+c#+VlexGrid
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32731653
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо за потраченное время и толковые ответы
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS добавляет "левые" таблицы в куб.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]