SQL OLAP Cube и измерение
В Windows Server 2008 с использованием SQL Server 2005, Visual Studio и служб аналитики SQL Server я создал куб OLAP.
Сценарий типичного магазина с продажей товаров, клиентов и агентов.
Куб состоит из таблицы фактов tblVendite (данные о продажах) и измерений, основанных на представлениях sql.
ПРИМЕЧАНИЕ: я попытался встроить скриншот сюда, но он будет изменен и не будет очищен, поэтому я разместил их на безопасном сайте, чтобы просмотреть его:
- Фактическая таблица tblVendite (продажа) > ПК: CdArticolo (IDProduct)
- ИЗМЕРЕНИЕ Продотти (produtcs)
- DIMENSION Calendario (календарь)
- DIMENSION Agenti (агенты)
- DIMENSION Clienti (заказчик)
Просмотр куба с основными фильтрами: календарь, клиент / агент, продукты, бренд... все работает нормально
Теперь мне нужно предоставить новую функцию, такую как:Сравнение "самого продаваемого бренда" всей компании с продажей каждого агента, чтобы увидеть, как он продает этот бренд.
Итак, я сделал новую таблицу и связанный вид: vwMarcheOrd
(самый продаваемый бренд)
Настольный бренд продаж предварительно заполнен sp
и содержат 1 запись для каждого бренда (CdMarca
- Position
- Description
порядок по позиции)
ПРИМЕЧАНИЕ: от vwMarcheOrd
я не могу иметь прямую ссылку на таблицу фактов, потому что ПК CdMarca
и это не присутствует, поэтому мне нужно "соединить" вид CdMarca
и получить CdArticolo
связать таблицу фактов
Размер и атрибуты для Brand
а также Top Brand
:
ПОСМОТРЕТЬ КУБ И ПРОБЛЕМУ
Добавление измерения Brand
(1) к полям строки результат правильный, но если я добавлю Top Brand
(2) неверно и многие бренды отсутствуют (но они существуют)
Итак, мои вопросы 2:
- Что я пропустил или неправильно или неправильно с
Top Brand
Размер? How i can display all records
Top Brand в полях строк, даже если агент не продал ни одного предмета этой марки (пустая строка)?
ps я также попытался создать измерение, основанное только на vMarcheOrd, а затем создать ссылочную связь с таблицей Product, чтобы соединить CdMarca > CdArticolo > Fact Table, но результат тот же
Заранее спасибо, кто действительно может помочь мне решить эту проблему, которая блокирует меня на протяжении многих дней
2 ответа
Из того, что я понимаю, похоже, что лучший бренд со временем может измениться. Это означает, что вам нужно как-то отслеживать это с течением времени. На мой взгляд, самый простой способ сделать это - добавить TopBrandKey в таблицу фактов и напрямую присоединить измерение бренда к таблице фактов. Таким образом, отслеживание времени выполняется для вас в таблице фактов. Когда появляются новые записи, вы должны найти ключ к бренду и добавить его в таблицу фактов. Я не думаю, что у вас это получится, потому что у проданного продукта не будет бренда, который является лучшим (это две разные вещи).
Чао лука:)
мне кажется, что у вас нет правильных отношений атрибутов между атрибутами в вашем кубе.
Я вижу, что вы используете BIDS 2005, с которым я не очень хорошо знаком (в 2008 году было бы легче помочь), но вам нужно установить отношения между Prodoti -> Brand -> top brand
Вы можете сделать это с помощью этих знаков + на атрибутах под именем измерения.