Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
MS SQL2K + MS AS Попытаюсь объяснить в чем дело. Есть энсколько магазинов в которых находится что?.. правильно, товар. Остатки в количественном выражении по дням получить совершенно не сложно. Весь гимор в следующем: существует времязависимый параметр - "Индикативная стоимость". Т.е. "Утюг с Верт.взлётом" на 1-янв стоит 55, на 1-фев 50, на 1-мар 53 ну и так далее. Его остатки(Маг1) на 1-янв=15, на 2-янв=13.... на 01-мар=7, на 02-мар=7 "ВидеоМаг.с сурдопереводом" на 1-янв стоит 203, на 1-фев 201, на 1-мар 210 ну и так далее. Его остатки(Маг1) на 1-янв=5, на 2-янв=5.... на 01-мар=3, на 02-мар=3 Задача - получать остатки в этой "Индикативной цене", т.е. Код: plaintext 1. 2. 3. 4. 5. 6. Надеюсь не слишком сумбурно получилось. В скобках - как число должно получится. Что я уже сделал: Выстроил вспомогательный куб с Инд. ценами - 2 Dim. "Товары" и "Даты", Measure "Инд.цена". На каждый день инд. цену имею. Есть Куб с остатками. Пытаюсь слепить виртуальный куб. Получаются 2 общих Dim-a "Товары" и "Даты". Осталась фигня - придумать как суммировать. Так вот КАК СОБСТВЕННО ??? Может кто то подсказать светлую мысль? Может вообще не в том направлении уродуюсь? P.S. 2Jurij - Congos не предлагать, нет времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:12 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
Если правильно понял: можно хранить помимо количества на определенный день и Сумму по данному товару, тогда все будет считаться автоматом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:17 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
2 Quark Не правильно. Остатки я получаю накопительно. Т.е. в фактах у меня дельточки. Я не могу тамже держать эту гр@%&ную "Инд. цену". Считать я должен именно так: [Остаток на дату]*[Инд.цена на дату]. Это не тоже самое что [Прих в янв]*[Инд.цена в янв]-[Расх в мар]*[Инд.цена в мар]. Надеюсь понятно обьяснил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:29 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
Хорошо, раз уж храните накопительно остатки, а это значит что у вас хранятся движения. То храните движения изменения индикативной цены(то есть переоценку) и тогда также можете считать ее как и остатки. Подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:36 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
To Alex Fox: P.S. 2Jurij - Congos не предлагать, нет времени. Ну если вы хотите чтобы у вас и в будущем времени не было - Cognos предлагать не буду :) P.S. (для текущих и будущих пользователей Cognos): Я подобные задачи решаю за счет того, что делаю в кубе 2 таблицы фактов (одну с дельтами, другую с ценами, цены либо на каждый день - либо -тоже дельты), в OLAP-клиенте налету вычисляю остатки (например в отчете вывожу все годы, последний год раскрываю в месяцы, последний месяц - в дни), под них подтаскиваю цены, и опять таки налету вычисляется произведение одного на другое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 13:43 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
2 Quark Мысль интересная, но к сожалению, в моем случае, очень трудно реализуемая. "Инд. цена" сама по себе довольно хитротрахнутый алгоритм. Просто так зафиксировать переоценку весьма проблематично. 2 Jurii Ради Бога не обижайтесь. Не со злым умыслом было сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:08 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
Если вы знаете индикативную цену на каждый день, то сделайте "виртуальные" документы в витрине данных меняющие эту цену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:12 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
To Alex Fox Что-то я не понял в чем проблема-то? Делаете Calc. Measures примерно так: Код: plaintext 1. Далее еще Calc. Measures для суммы: Код: plaintext 1. Или не то нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:14 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к напечатанному: Куб содержащий инд.цены(dim-ы Товары(par-ch) и Время(time dim) Measure [Инд.цена]). Ранее было условие - цены меняются 1-го числа. Т.е. можно было сотворить calc cell Код: plaintext 1. 2. плюс сответствующие Rollup Formul-ы на месяцах и годах и все работало шоколадно... Но пришло время смены правил. Цена может менятся посреди месяца. Т.е. приходится изображать что то вроде Код: plaintext 1. 2. И как результат infinity recursion. Замахался раставлять SOLVEORDER, CALC_PASS, CALC_DEPTH... Блин... крышу рвет... помогите если не в облом. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2004, 22:52 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
To Alex Fox: Блин... крышу рвет... помогите если не в облом. Заранее спасибо. Это типа на Вашу крышу наехали и начались чисто конкретные разборки по понятиям? :) P.S. Если эта задача так и не будет решена силами MDX, рекомендую вернуться к вопросу OLAP-клиента Cognos PowerPlay, он может быть подключен к Вашим кубам MS AS для создания сложных отчетов, в то время как другие пользователи будут работать с имеющимся у Вас OLAP-клиентом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 08:31 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
Влезу и я со своим самоваром. Если правильно понял последнюю проблему c изменением цены в произвольный день, то я решал аналогичную задачу по отображению продаж в ценах прайс-листа, который так же мог меняться произвольно. Все делал на хранилище данных в DTS. Схема работы была такая: 1) Выборка прайсовых цен из таблицы товаров SELECT ID, Data_Price, Price Into #PriceHistory FROM Product ORDER BY ID, Data_Price DESC 2) В таб продаж вставляю прайсовую цену на дату отгрузки, выбирая из истории цен соответствующего товара цену с максимальной датой, меньшей, чем дата отгрузки. UPDATE Sales SET cena_price = (SELECT Price FROM #PriceHistory WHERE (ID = Sales.ID) AND (Data_Price = ( SELECT MAX(T.data_price) FROM #PriceHistory AS T WHERE T.ID = Sales.ID AND (T.Data_price <= Sales.Data_sales)))) Аналогичную методу можно сделать и для остатков товаров. Надеюсь, что хотя бы немного помог :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 09:50 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
В конце последнего выражения добавить FROM Sales,#PriceHistory PS Плохо, что нет редактора сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 09:55 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
2 Jurii Ха-Ха-Ха как смешно.... блин. Все равно за PP спасибо. Найду попробую. 2 OR Хранение инд.цены в табл. фактов не даст толку. Это не прайс на дату-там кол-во*прайс и получили оборот, объём и т.д. Мне надо высчитать кол-во, И ТОЛЬКО ПОТОМ результирующую сумму умножить на инд.цену данного дня. Все равно вопрос остаётся - как заполнить "дыры", где нет данных, выбирая таковые с предыдущих дней. Неужели никому не надо такое? З.Ы. Все больше склоняюсь к мысли по проведению фиктивных переоценок в DW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 12:48 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
ну, так я и имел в виду, что и остатки кол-ва и стоимость расчитывается в DWH, а в кубы подкачиваются уже готовые данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 13:08 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
To Alex Fox Хранение инд.цены в табл. фактов не даст толку. Это не прайс на дату-там кол-во*прайс и получили оборот, объём и т.д. Мне надо высчитать кол-во, И ТОЛЬКО ПОТОМ результирующую сумму умножить на инд.цену данного дня. Все равно вопрос остаётся - как заполнить "дыры", где нет данных, выбирая таковые с предыдущих дней. Неужели никому не надо такое? З.Ы. Все больше склоняюсь к мысли по проведению фиктивных переоценок в DW. IMHO задача сводится к классической бухгалтерской переоценке. И ложиться полностью на плечи DWH (Реляционного хранилища) Так как у вас в таблице фактов хранятся только движения(в натуральном и в денежном выражении) то надо и дальше хранить только их, а по факту изменения цены генерировать движение в денежном выражении. Приход = ОтстатокНаДатуИзмененияЦены * (ЦенаСтарая - ЦенаНовая) Это имеет смысл, когда "переоценок" на порядок меньше, чем обычных движений вызванных основной деятельностью. В случае же, когда частота изменения цен высокая (например "портфель акций") то имеет смысл изменить стратегию и проводить переоценку не по факту изменения цен, а с определенной периодичностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 21:41 |
|
||
|
Хитрая времязависимая сумма...
|
|||
|---|---|---|---|
|
#18+
To Juri P.S. (для текущих и будущих пользователей Cognos): Я подобные задачи решаю за счет того, что делаю в кубе 2 таблицы фактов (одну с дельтами, другую с ценами, цены либо на каждый день - либо -тоже дельты), в OLAP-клиенте налету вычисляю остатки (например в отчете вывожу все годы, последний год раскрываю в месяцы, последний месяц - в дни), под них подтаскиваю цены, и опять таки налету вычисляется произведение одного на другое... А как мне в Когносе такой отчетик сделать, чтоб смотреть историю изменения товарных запасов в индикативных ценах. По вашему для каждого выводимого месяца (недели) пользователю надо хорошо потрудиться мышкой. Просветите как это Cognos "на лету" считает. Например, если делать DrillDown по измерению отличному от Товара, то при вычислении денежных остатков, (вещественные остатки в штуках, метрах, тоннах и т.п. вряд ли кого интересуют в разрезе магазинов, складов, групп товара - это как средняя температура по палате) на День "Х" будут задействованы предрасчитанные аггрегаты. Если же надо вывести стоимостные остатки в индикативных ценах "on the fly" то никуда не деться, как опуститься до аггрегаций по товару, получить по ним остаток на День "Х", перемножить на цену на День "Х" и аггрегировать до просматриваемого измерения. И если у вас количество товаров в измерении на 3-4 порядка больше чем магазинов или складов, то боюсь, что вместо "on the fly" будет "on the crawl" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2004, 22:14 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=392&tid=1872672]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 378ms |

| 0 / 0 |
