powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Считаем себестоимость
22 сообщений из 22, страница 1 из 1
Считаем себестоимость
    #33441993
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, возникла классическая задача - посчитать себестоимость в каждой строке розничной продажи. Известна дата продажи, дата остатка, товар, точка отпуска.
Нужно обрабатывать исключения в виде себестоимости, выше или ниже отпускной цены в n раз.

Какие будут мнения, подкрепленные практикой, по эффективности реализации этого расчета

а) в SQL в джойне с CASE - ами
б) в SQL-функции
в) в ETL-функции
г) в ETL-лукапе
д) ?

?

Я пока сделал трехпроходный расчет по первому варианту (для упрощения кода).
Первый проход вставляет расчетные себестоимости исходя из остатков, второй и третий - обработка исключений.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33442052
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А CREATE TABLE и несколько строк для того, чтобы понять задачу поглубже можно привести? Может, там трёх проходов и не нужно?

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33442384
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте не мое решение обсуждать, а делиться экспертизой? Критиковать все мы доки!
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33442420
MSTR_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мнение по реализации - почти однозначно первый вариант. Функции это трудносопровождаемо и попадает в зависимость от СУБД. А делать расчет в ETL или в онлайне - это уже выбирать на месте.

А схему можете привести с примером данных? Может мы и правда подскажем чего дельное?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33442721
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГликогенДавайте не мое решение обсуждать, а делиться экспертизой? Критиковать все мы доки!

К сожалению предмета экспертизы/критики не видно. Приведите более подробное описание.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445090
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSTR_Fan А делать расчет в ETL или в онлайне - это уже выбирать на месте.

Какой онлайн? Это же розница!
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445092
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. Все хотят схему. Она же есть в букварях!
Может, не в схеме дело, просто жаба душит свой опыт бесплатно выкладывать? :)
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445102
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГликогенСтранно. Все хотят схему. Она же есть в букварях!
Может, не в схеме дело, просто жаба душит свой опыт бесплатно выкладывать? :)

С чего вы решили, что нас жаба душит. Вы ранее это замечали за мной или Константином?

Пожалуйста, приведите ссылку на азбучную, по-вашему, задачу.

Мне кажется, что вы думаете об одном, а мы из вашего скудного намека на постановку задачи, думаем о другом.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445108
MSTR_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГликогенКакой онлайн? Это же розница!

Ну и что?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445322
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГликогенСтранно. Все хотят схему. Она же есть в букварях!
Ссылку на букварь выложите, пожалуйста, если не трудно.


ГликогенКакой онлайн? Это же розница!
Розница нынче в он-лайне не работает, разве?

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445479
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский ГликогенСтранно. Все хотят схему. Она же есть в букварях!
Ссылку на букварь выложите, пожалуйста, если не трудно.

Пожалуйста!
The Data Warehouse Toolkit. Глава 1 про ритейл и следующая, кажется, про Inventory.

ГликогенКакой онлайн? Это же розница!
Розница нынче в он-лайне не работает, разве?


Ну смотря что вы понимаете под "онлайном". На смешном объеме данных в ~3 миллиона строк разнесение себестоимости в каждую обходится в моем случае в 7 минут. И это при неплохой подготовке в области индексации. Вы утверждаете, что MSTR сжует это в онлайне, т.е. прямо в отчете и до 5 минут? И выведет в итог посчитанную маржу?

Позволю себе усомниться и опять спросить - нет ли кроме желающих критиковать мое решение и продвигать пафосные брэнды, тех, кто что-то подобное делал сам, и , главное, как?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445506
MSTR_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГликогенНу смотря что вы понимаете под "онлайном". На смешном объеме данных в ~3 миллиона строк разнесение себестоимости в каждую обходится в моем случае в 7 минут. И это при неплохой подготовке в области индексации. Вы утверждаете, что MSTR сжует это в онлайне, т.е. прямо в отчете и до 5 минут? И выведет в итог посчитанную маржу?

Прошу прощения, но по-моему никто не говорил о том что МСТР то или МСТР это. Константин и я предлагаем решения на чистом SQL, а из какого клиента его запускать - это только ваше решение.

Под онлайном я понимаю выполнение всех вычислений на базе исходных данных по желанию пользователя. Если в вашем проекте это не представляется возможным, то можно выполнять эти вычисления в staging area на этапе загрузки, в хранилище после загрузки, на источнике... Это ваш проект и вам решать. Всё что я хотел сказать это то, что реализуя вычисление того или иного показателя на чистом SQL, языке стандартизованном, вы значительно облегчите себе и своим последователям сопровождение, модернизацию и перенос этого алгоритма на другую платформу.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445599
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSTR_Fan
Прошу прощения, но по-моему никто не говорил о том что МСТР то или МСТР это. Константин и я предлагаем решения на чистом SQL

Это потому что я упредил :)

MSTR_Fan
Реализуя вычисление того или иного показателя на чистом SQL, языке стандартизованном, вы значительно облегчите себе и своим последователям сопровождение, модернизацию и перенос этого алгоритма на другую платформу

Да. Дважды два - четыре.
Встречался ли кому-то на практике ETL/BI проект, который бы пришлось портировать на другую СУБД?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33445615
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Гликоген:

Встречался ли кому-то на практике ETL/BI проект, который бы пришлось портировать на другую СУБД?

Мне подобные проекты встречаются, например переход со 150-гигабайтного ХД MS SQL Server на Oracle. Или, если брать примеры помельче с XSL на CSV :)
Но поскольку в этих проектах основной ETL и вычисление аналитических показателей делалось на уровне BI-средства, без написания рукописного SQL, проблем с миграцией не возникало.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446006
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГликогенИтак, возникла классическая задача - посчитать себестоимость в каждой строке розничной продажи. Известна дата продажи, дата остатка, товар, точка отпуска.
Нужно обрабатывать исключения в виде себестоимости, выше или ниже отпускной цены в n раз.

Какие будут мнения, подкрепленные практикой, по эффективности реализации этого расчета

а) в SQL в джойне с CASE - ами
б) в SQL-функции
в) в ETL-функции
г) в ETL-лукапе
д) ?

?

Я пока сделал трехпроходный расчет по первому варианту (для упрощения кода).
Первый проход вставляет расчетные себестоимости исходя из остатков, второй и третий - обработка исключений.

Ответьте, правильно ли я понимаю условия вашей задачи.

Есть таблица с продажами

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table Sales (
  product_id int,
  warehouse_id int,
  sale_date datetime,
  sale_quantity decimal( 18 , 3 ),
  sale_price decimal( 18 , 2 ),
  sale_value decimal( 18 , 2 )    -- sale_quantity * sale_price
)

и таблица с остатками (Snapschot)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table Inventory (
  product_id int,
  warehouse_id int,
  inventory_date datetime,
  stock_quantity decimal( 18 , 3 ),
  stock_price decimal( 18 , 2 ),
  stock_value decimal( 18 , 2 )    -- stock_quantity * stock_price
)

Что надо получить в вашем случае?
Дополнить таблицу Sales столбцом stock_preis,
и выбрать записи,
Код: plaintext
where  sale_price / stock_price not between  1 /@n and @n

Есть ли еще приходы товара?
И связанный с этим пересчет себестоимости товара на складе?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446393
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про приходы я вроде ничего не писал. Используется только себестоимость на базе известных остатков. Движения (пока) не учитываются.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446416
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГликогенПро приходы я вроде ничего не писал. Используется только себестоимость на базе известных остатков. Движения (пока) не учитываются.

Ну тогда я не вижу причин не считать это on-the-fly в случае ROLAP или включить это во VIEW при загрузке в MOLAP.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446421
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jurii2 Гликоген:

Встречался ли кому-то на практике ETL/BI проект, который бы пришлось портировать на другую СУБД?

Мне подобные проекты встречаются, например переход со 150-гигабайтного ХД MS SQL Server на Oracle. Или, если брать примеры помельче с XSL на CSV :)
Но поскольку в этих проектах основной ETL и вычисление аналитических показателей делалось на уровне BI-средства, без написания рукописного SQL, проблем с миграцией не возникало.

А о всеобъемлющих причинах этого перехода вы тоже можете рассказать?
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446487
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire:

А о всеобъемлющих причинах этого перехода вы тоже можете рассказать?

Переход с MS SQL Server на Oracle произошел из-за того, что в компании заменили ERP-систему, старая работала на MS SQL в одном городе, а теперь новая ERP-система работает на СУБД Oracle в другом городе.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446526
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jurii2 backfire:

А о всеобъемлющих причинах этого перехода вы тоже можете рассказать?

Переход с MS SQL Server на Oracle произошел из-за того, что в компании заменили ERP-систему, старая работала на MS SQL в одном городе, а теперь новая ERP-система работает на СУБД Oracle в другом городе.

А при чем тут ХД к OLTP?
То что вы назвали максимум тянуло на повод но это никак не причина.
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33446606
MSTR_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГликогенВстречался ли кому-то на практике ETL/BI проект, который бы пришлось портировать на другую СУБД?

Даже не учитывая миграцию на платформы более высокого класса, скажите, начиная новый проект у заказчика, от чего вы отталкиваетесь? Или вы хотите сказать что алгоритмы расчета всех показателей, все отчеты используемые в компании всегда тщательно документируются? И вам никогда не приходилось делать reverse чужих разработок чтобы понять как считается скажем дебеторская задолженность, или пресловутая себестоимость?

А вообще очень оригинальное поведение для человека испрашающего совета :)
...
Рейтинг: 0 / 0
Считаем себестоимость
    #33448580
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удивительно поведение автара вопроса ....

Какая структура таблиц?
Партионный учет есть?
Приведите CREATE TABLE...

При чем тут, что кто-то чем-то делится не хочет, - у тебя конкретная реализация - так покажите ее...
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Считаем себестоимость
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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