|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Всем привет, Есть у меня задача, посчитать остатки по товарам на каждую дату по всем складам и товарам Пытался сделать это средствами SQL и сделал, но работает это все очень очень долго и объем таблицы гигантский Решил попробовать сделать это в Кубе, но для меня это темный лес, поэтому прошу помощи разобраться, что и как и дать совет по решению 1. Решил попробовать построить куб прочитав статью - https://www.sql.ru/blogs/dklmnmsbi/1450 , да и в целом хотелось бы освоить и далее использовать Кубы в работе У меня есть - Таблица движений, которая отличает от таблицы, автора, я ее преобразовал в запросе, и вместо прихода \ расхода, я имею сразу готовое значение Оборота по товару на дату - выглядит так Мое представление Куба - Использование измерений - Куб - Без мер, куб разворачивается, все ОК, остается задача написать вычисления. В MDX полный 0, формулы которые вижу в примерах понимаю пока с трудом У Автора в статье, идет расчет прихода, расхода, оборота, Конечного остатка У меня уже все посчитано в SQL мне надо только конечный остаток Если я беру формулу Автора и применяю к своим таблицам, я получаю ошибку при развертывании Использую формулу так - Сама формула - Код: sql 1.
Даже просто вывести столбец оборота у меня не получается Помогите пожалуйста разобраться, что я делаю не так, из-за чего ошибка и что сделать, чтобы ее исправить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 13:01 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Kellyjkee, Удалил все меры Вставил в Calculate Код: sql 1. 2. 3. 4. 5. 6.
Построился куб без ошибок, но в результате только NULL.. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 13:13 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Kellyjkee, В общем разобрался, все оказалось очень просто Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 16:33 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
можно считать не от начала времен, а от среза https://www.sql.ru/forum/524753/novyy-podhod-k-ostatkam-v-2005 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 20:45 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Критик можно считать не от начала времен, а от среза https://www.sql.ru/forum/524753/novyy-podhod-k-ostatkam-v-2005 вопрос есть) как от среза - понятно. но если есть 2 календаря? фискальный и человечески. как делать? городить 2 таблицы? первая таблица - движение вторая таблица - срезы. или даже 2 таблицы срезов срезы обычный календарь срезы фискальный календарь.... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2021, 20:55 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
montoya., один календарь, но разные иерархии ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2021, 07:41 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Критик montoya., один календарь, но разные иерархии календарь то один и иерархии разные. но вот допустим календарный 2021 год начинается с 1 января 2021 а фискальный с 22 декабря 2020 года. ломается концепция срезов на начало периода.... думаю как всё же можно сделать со срезами что бы не считать каждый раз с начала истории. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 10:32 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
montoya., Так срезы то не про период! Срезы про деление данных. Как бы партицирование. То что на конец периода считается автоматом быстро и поднимается выше по иерархии - это приятный побочный бонус. Ну сделайте заливку да даты фискального года. Хотя все равно не понимаю. У вас что в фискальном календаре последний день ЛЮБОГО месяца - 22? Если таки да - залейте еще и на 22 физические данные и "магическое число" в календаре добавьте. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 14:37 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Kellyjkee Kellyjkee, В общем разобрался, все оказалось очень просто Код: sql 1.
на уровне даты всё считает хорошо но на уровне месяца и т.д. - пусто. а как на уровень месяц/год ит.д. поднять LastChild ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 18:39 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
LogrusAS montoya., Так срезы то не про период! Срезы про деление данных. Как бы партицирование. То что на конец периода считается автоматом быстро и поднимается выше по иерархии - это приятный побочный бонус. Ну сделайте заливку да даты фискального года. Хотя все равно не понимаю. У вас что в фискальном календаре последний день ЛЮБОГО месяца - 22? Если таки да - залейте еще и на 22 физические данные и "магическое число" в календаре добавьте. немного хуже) каждый фискальный месяц может быть на разную дату) (не я придумал) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 19:16 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
montoya., Во первых заливайте на ту вот последнюю дату. А во вторых я не совсем понимаю как отображается Ваш календарь. Если 22 декабря это последний день, то 23 декабря это уже не декабря а что? Значит у вас есть какая то другая иерархия. И работать метод будет при любых вариантах. В этом его изюминка. Просто если есть желание ускорить - заливайте еще и на дату последнего дня фискального периода. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 14:42 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
LogrusAS montoya., Во первых заливайте на ту вот последнюю дату. А во вторых я не совсем понимаю как отображается Ваш календарь. Если 22 декабря это последний день, то 23 декабря это уже не декабря а что? Значит у вас есть какая то другая иерархия. И работать метод будет при любых вариантах. В этом его изюминка. Просто если есть желание ускорить - заливайте еще и на дату последнего дня фискального периода. да 23е декабря это уже может быть январь следующего фискального года. для понимания есть две иерархии первая - обычный человеческий календарь. вторая - фискальный: он рассчитан кратно неделям т.е. любой месяц в нём - кратен 4ём или 5ти неделям. вообщем я уже поигрался с этим методом даже при расчёте с начала истории - очень хороший результат получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 18:50 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
Всегда нужно иметь свой календарь, где явно прописаны к-л значения: выходные и праздники с учетом переноса раб.дней, номера недель месяца, график работы компании и пр. Всегда есть внутренние правила, которые отличаются от общепризнанных. "Таки у всех суббота, а у меня таки четверг" (с) анек ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2021, 14:14 |
|
Остатки по товарам на дату
|
|||
---|---|---|---|
#18+
LogrusAS montoya., Во первых заливайте на ту вот последнюю дату. А во вторых я не совсем понимаю как отображается Ваш календарь. Если 22 декабря это последний день, то 23 декабря это уже не декабря а что? Значит у вас есть какая то другая иерархия. И работать метод будет при любых вариантах. В этом его изюминка. Просто если есть желание ускорить - заливайте еще и на дату последнего дня фискального периода. с этой задачей справился внимательно перечитав https://www.sql.ru/forum/524753/novyy-podhod-k-ostatkam-v-2005 спасибо всем участникам) возникла следующая задача) как посчитать возраст запасов? в таблице фактов "движение" по которой строится остаток на дату есть поле ДатаПрихода. сделал ещё одну вьюху фактов с полями: Дата, ДатаПрихода, ВозрастДней. в которую включил все необходимые комбинации создал группу мер и меру ВозрастДней создал в DSV в таблице "Движение" фиктивную меру .[NULL Age Vesa] задумка меры посчитать Веса = Остаток * ВозрастДней а теперь? что прописать в Calculated, что бы посчитать возраст? пытался так, но результат не получил ([Время].[День].[День], Measures.[NULL Age Vesa]) = [Остаток] * [Measures].[ВозрастДней]; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2021, 19:14 |
|
|
start [/forum/topic.php?fid=49&fpage=3&tid=1857105]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 406ms |
0 / 0 |