|
|
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
Доброе время суток дорогие форумчане. Вопрос очень интересный, помогите его решить. Задача такая: Допустим есть 3 измерения: 1.Объекты: Иерархия 1. Страна 2. Регион 3. Город (атрибуты автомойки) 2. Период Иерархия 1.Год. 2. Месяц. 3. День. (без времени) 3. Статьи затрат 1. уровень 1 2. уровень 2 3. уровень 3 Связи (обычные) Ну и таблица фактов с суммами статей( продажа, потери, зп, украли отдали ну и так далее) Что необходимо. Сделать так чтобы можно было выбрать любой разрез по измерениям и выдало 2 топовых строк (по сумме из таблице фактов) любого уровня измерения. Т.е. К примеру накидываю в Exsel строки измерение страны, статьи уровень 2 ,и колонки по периоду к примеру год. Будет примерно так Код: html 1. 2. 3. При исходных данных Статьи Материальные издержки 6000 Амортизация основных средств 5000 Издержки 4000 Обязательные начисления 3000 Оплата услуг сторонних организаций 2000 Прочие затраты 1000 MDX запрос через topsum можно написать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но это статические данные получиться, так как Я указал разрез статей, а надо перехватывать выбранное измерение и выдавать топ по статьям. В студии можно через Код: sql 1. Но не получается прокидывать axis (1), он ругается либо так "Номер ошибки Функция ожидает для аргумента строчное или числовое выражение. Было использовано выражение набора кортежей. " либо Была попытка сослаться на ось среза. Народ помогите, ибо разберусь и понесу знания в народ))) Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 07:42 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
yakov40136, Сори при topsum, допустим больше 4000, а не 2, это для topcount ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 08:03 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
yakov40136, В ручных MDX запросах можно, но вроде стандартно задача не решаема на уровне Excel/SSAS архитектуры, дело в Excel генераторе MDX, ты говоришь на оси дай мне набор Х, а запрос должен сам это заменить (обработать функцией) на набор Y (хоть и такой-же формы - но другой длинны, хотя данные урезать можно), по моему это только через написание своего слоя интерпретатора. Расчёт что выбрал на axis(n) в конечном теле запроса происходит один раз и уже не настолько изменяемо повторными проходами (цепь From-Where-With-Axis(0)..(n)..+non empty/having) - можно ограничить данные через вынос в подзапрос(ы)/подкуб(ы) - но в Excel генераторе логика такого рода слишком примитивна (он только non empty ставит, having никогда не замечал).. На уровне scope может и можно стереть данные (null) меньше topcount/topsum по всем возможным комбинациям атрибутов - тогда в Excel сработает non empty, теоретически может и получится реализовать (можно даже чтобы не влиять на всех пользователей сразу через виртуальное измерение с одним неагрегируемым атрибутом где defaultmember = Всё и остальные элементы типа TopCount2, TopCount5, TopCount10) - но на первый взгляд уж очень муторно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 08:27 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
vikkiv, Спасибо, давай предположим, что данные будут вытягиваться не в Excel, а в другой BI приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 08:45 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
yakov40136, ну тогда просто - вот именно это BI приложение при генерации MDX (например логика через дополнительный параметр вместе с iif/case в том-же where на этапе синтеза из атрибутов/элементов именного набора который в результате попадает на ось1) и должно будет из к тому что пользователь яко-бы выбирает на осях применить функцию TopCount (на основе какой-то меры) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 09:07 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
vikkiv, но в ssas, это реализовать возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 09:17 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
yakov40136, чисти scop-ом данные или грузи только те комбинации где нужный top(x) , второй вариант более затратен по перебору всех возможных случаев под правильные ключи, первый - можно начать с частичной чистки (под несколько выборочных атрибута) многомерного пространства куба. на больших кубах с множеством измерений, атрибутов и групп мер - легче наверное на стороне MDX запроса сделать / с клиента прислать. ну или чисто мне с утра пока ничего в голову не приходит, может здешние коллеги с нужным опытом как проснутся - что получше придумают. позже попробую в MDX скрипте куба с Axis(n) поэкспериментировать, ругаться может из-за того что не получается у него на нужные элементы разбить, часто нужно через Axis().Item()...Item() делать (хотя на осях структуры бывают довольно сложные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 09:30 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
vikkiv, Выбрали Power BI, может в него mdx запрос кинуть. А так не зная куда пользователь пошёл, я думаю нельзя вернуть топ по мере. Были варианты. 1.Именованный запрос с точным указанием куда пользователь лезит. 2.Измерений много и у них разная иерархия, ssas как говориться не знает брода не хр*на туда не полезет, тут как и в 1 варианте, для каждого измерения. Буду думать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 09:36 |
|
||
|
Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012
|
|||
|---|---|---|---|
|
#18+
yakov40136, насколько я видел в профайлере - PowerBI DAX шлёт, даже в SSAS Multidimensional. У него с кубами 2 варианта есть - Live Connection и Import, второй - свою модель строить, связи настраивать и грузить всё в локальный файл первый - там особо запрос не подредактируешь (недавно стало можно на уровне конкретного отчёта свои меры писать - но очень ограниченно) а так да - именными set-ами на все случаи жизни не запасёшься даже если динамические, да и слишком запутанно для пользователя получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=39597874&tid=1857994]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
24ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 437ms |

| 0 / 0 |

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