powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет CM в зависимости от выбранного измерения
10 сообщений из 10, страница 1 из 1
Расчет CM в зависимости от выбранного измерения
    #39473928
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.

Есть таблица фактов в которой хранится информация по применяемым скидкам в заказах покупателя.
Причем на один товар могут одновременно применяться несколько скидок.
Например, в заказе №12:
на товар1 в кол-ве 50 шт применяются скидки: Скидка1 - 5%, Скидка2 - 8% и Скидка3 - 2%
на товар2 в кол-ве 80 шт применяются скидки: Скидка1 - 5%, Скидка2 - 8%

OrderID Item Qty BasePrice TotalSum DiscountType Discount_% Discount_Sum
12 Товар1 50 1000 50000 Скидка1 5 2500
12 Товар1 50 1000 50000 Скидка2 8 4000
12 Товар1 50 1000 50000 Скидка3 2 1000
12 Товар2 80 1000 80000 Скидка1 5 4000
12 Товар2 80 1000 80000 Скидка2 8 6400

Если построить куб, то мера Qty просуммируется и получим результат на уровне товара1 - 150шт, на уровне Товар2 - 160шт, а на уровне заказа по всем товарам получим 310шт, хотя по факту в заказе было всего 130шт.

Посоветуйте как лучше реализовать задачу, с учетом того, что в конечном итоге необходимо определить стоимость товара с учетом всех скидок.
Заранее спасибо!
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474061
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogus,

прочитайте про м2м
у учебной базе есть хороший пример для понимания
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474082
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogus,

считайте в хранилище
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474097
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavyпрочитайте про м2м
о чем читать? тут не m2m, тут 2 факта с разной гранулярностью.
либо бить на 2 группы мер (это предпочительнее, т.к. есть несколько мер),
либо расшивать факты
типа:
OrderIDItemTrnTypeQtyBasePriceSumDiscount_%12Товар1Продажа50100050000012Товар1Скидка100-2500512Товар1Скидка200-4000812Товар1Скидка300-1000212Товар2Продажа80100080000012Товар2Скидка100-4000512Товар2Скидка200-64008
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474184
vborets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogus,

переделайте таблицу, если возможно, так:

OrderID Item Qty BasePrice TotalSum Discount_%_1 Discount_Sum_1 Discount_%_2 Discount_Sum_2 Discount_%_3 Discount_Sum_3



Если невозможно, то используйте Scope и вычисляемые меры как максимальное значение.
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474315
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать два представления
1.
OrderID Item Qty BasePrice TotalSum
12 Товар1 50 1000 50000
12 Товар2 80 1000 80000
2.
OrderID Item DiscountType Discount_% Discount_Sum
12 Товар1 Скидка1 5 2500
12 Товар1 Скидка2 8 4000
12 Товар1 Скидка3 2 1000
12 Товар2 Скидка1 5 4000
12 Товар2 Скидка2 8 6400

По первому представления будет мера Сумма
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474319
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По второму Скидка
Сумму с учетом скидки сделать как вычисляемую меру Сумма - Скидка.
Если нужно анализировать суммы продаж в разрезе типов скидок, то настраиваем м2м через представление скидок к представлению продаж.
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474690
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloper... то настраиваем м2м через представление скидок к представлению продаж.
покажите где здесь m2m.
По Вашему между Товаром и Датой тогда тоже m2m!!!

Конкретный Заказ имеет несколько Продаж товаров - да
Конкретная Продажа товара имеет несколько Заказов - нет
Конкретный Заказ имеет несколько Скидок на товар - да
Конкретная Скидка на товар имеет несколько Заказов - нет
ну и транзитивность
Конкретная Продажа товара имеет несколько Скидок на товар - да
Конкретная Скидка на товар имеет несколько Продаж товара - НЕТ

Вот если бы была скидка не только на позицию в заказе но и на заказ в целом....
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474774
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

Тип скидки относится к нескольким строкам заказов и одна строка заказа может относится к нескольким типам скидок.
Например, нужен отчет по продажам и скидкам в разрезе типов скидок Скидка1 и Скидка3

Если делать без настройки связи многие ко многим (с таблицей фактов, как в исходном примере, то будет так)
DiscountType Qty TotalSum Discount_Sum
Скидка 1 130 130000 6500
Скидка 3 50 50000 1000
Итог 180 180000 7500

Если сделать, как я предложил, то будет так
DiscountType Qty TotalSum Discount_Sum
Скидка 1 130 130000 6500
Скидка 3 50 50000 1000
Итог 130 130000 7500
...
Рейтинг: 0 / 0
Расчет CM в зависимости от выбранного измерения
    #39474784
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще поясню для полной ясности )
Строка заказа != строка в таблице фактов у автора
Строка 1 заказа у автора представлена 3-мя строками в таблице фактов и относится к 3-м типам скидок.
Строка 2 заказа представлена 2-мя строками в таблице фактов и относится к 2-м типам скидок.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет CM в зависимости от выбранного измерения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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