| 
 | 
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  В целом, запрос будет выглядеть так: Код: sql 1. 2. 3. 4. 5. 6. Или так Код: sql 1. 2. 3. 4. 5. 6. Или так Код: sql 1. 2. 3. 4. 5. 6. Но вот как бы это записать без привязки к уровню? Если пользователь выберет уровень детализации "месяц", то ему будет показана разница предыдущего месяца с текущим. Если квартал - то будет показана разница поквартальная ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 07.12.2019, 22:25 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Charles Weyland, Иерархию постройте. Y-Q-M. И уже на ней считайте ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 08.12.2019, 22:41 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Charles Weyland, Есть более глобальный подход к таким вычислениям. Не прописывать отдельно для каждой меры, а сделать для всех мер сразу. Например, можно здесь почитать https://devinknightsql.com/2014/08/14/mdx-time-calculations-built-to-scale/ ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 08.12.2019, 23:06 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  спасибо)) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 00:11 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  bideveloper Charles Weyland, Есть более глобальный подход к таким вычислениям. Не прописывать отдельно для каждой меры, а сделать для всех мер сразу. Например, можно здесь почитать https://devinknightsql.com/2014/08/14/mdx-time-calculations-built-to-scale/ У меня есть сомнения, что универсальный подход будет оптимален по скорости. Я иду по пути -- написать небольшой генератор и нагенерить им простыню из SCOPE. Выглядит громоздко, но оптимально по производительности. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 08:32 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  насколько мне известно, scope как раз уменьшает производительность... если уж оптимизировать, то на уровне максимальной денормализации и прописывании мер в БД, которые останется только агрегировать в кубе без лишних сложных вычислений. А по поднятому вопросу, я почему-то ступил и не додумался написать Код: sql 1. 2. 3. 4. 5. 6. С одной стороны, работает как надо. Но с другой стороны - а что если понадобится посмотреть по номеру недели в году? или по триместру? по финансовому году? всё равно, видимо, scope'ами придётся обходиться. Думал, вдруг можно как-то узнать просто текущий уровень в пределах меры и брать по нему, чтобы десяток созданных уровней иерархий не переписывать в десяток созданных мер. получается, при создании каждой следующей меры придётся очень здорово и очень много править по коду. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 10:45 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Charles Weyland С одной стороны, работает как надо. Но с другой стороны - а что если понадобится посмотреть по номеру недели в году? или по триместру? по финансовому году? всё равно, видимо, scope'ами придётся обходиться. Думал, вдруг можно как-то узнать просто текущий уровень в пределах меры и брать по нему, чтобы десяток созданных уровней иерархий не переписывать в десяток созданных мер. Да, без scope не обойтись. Но в том подходе, что я привел выше, scope пишется один раз для разных иерархий дат. А мер потом можно добавлять сколько угодно и ничего при этом менять не надо. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 12:42 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  a_voronin У меня есть сомнения, что универсальный подход будет оптимален по скорости. Если правильно написать MDX, то это будет не быстро, а очень быстро ;) (С) Моша. Правильный (но не без огрехов) MDX для подобных вычислений можно увидеть, напр., здесь . Книжку можно найти на просторах интернета (в чисто ознакомительных целях). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 12:47 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Charles Weyland насколько мне известно, scope как раз уменьшает производительность... О как! А откуда это известно? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 13:58 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  alexdr Charles Weyland насколько мне известно, scope как раз уменьшает производительность... О как! А откуда это известно? Криво написанный SCOPE может. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 15:40 | 
  
  
  
   | 
||
| 
 
MDX: как вычислить разницу текущего и предыдущего периода? Не зная уровень (год/месяц/..) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  a_voronin Криво написанный SCOPE может. А зачем его писать "криво"? Дескать, я сам себе злобный буратина и щас такой скоуп напишу, чтоб весь куб помер? Скоуп он для чего придуман был? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.12.2019, 16:59 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=49&msg=39899765&tid=1857424]:  | 
    0ms | 
get settings:  | 
    12ms | 
get forum list:  | 
    15ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    65ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    46ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 233ms | 
| total: | 394ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...