|  | 
| 
Остатки по товарам на дату | |||
|---|---|---|---|
| #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&msg=40088869&tid=1857105]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 40ms | 
| get topic data: | 9ms | 
| get forum data: | 2ms | 
| get page messages: | 43ms | 
| get tp. blocked users: | 1ms | 
| others: | 244ms | 
| total: | 366ms | 

| 0 / 0 | 
