Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 mdx запрос  [new]
мугуль
Guest
добрый!

Как написать mdx запрос который бы оъединил данные из нескольких кубов?

спасибо!
4 фев 13, 19:00    [13874316]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 376
мугуль
добрый!

Как написать mdx запрос который бы оъединил данные из нескольких кубов?

спасибо!

В одной и той же OLAP базе для кубов, подвязанных к одним и тем же измерениям, делаете примерно так
CREATE MEMBER CURRENTCUBE.[Measures].[Показатель1]
AS LookupCube("куб_сосед","([Measures].[показатель или мера из куба-соседа]
, "+[Измерение даты].[Иерархия даты].currentmember.uniquename+"
, "+[Измерение 2].[Иерархия измерения 2].currentmember.PrevMember.uniquename+")")

Ну и так далее. Удачи.
4 фев 13, 19:05    [13874327]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
Andy_OLAP,

Спасибо! сейчас попробую!
4 фев 13, 19:09    [13874339]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
мугуль,

вопрос возник в excel набросано много фильтров из разных измерений

как мне это написать в mdx

select

мера on rows

from cube where измерение1, измерение2, измерение3


я написал но выводится ошибка

Указанные в функции два множества имеют различную размерность.
5 фев 13, 11:49    [13876539]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 376
мугуль
мугуль,

вопрос возник в excel набросано много фильтров из разных измерений

как мне это написать в mdx

select

мера on rows

from cube where измерение1, измерение2, измерение3


я написал но выводится ошибка

Указанные в функции два множества имеют различную размерность.

Вариантов 2:
1. Запустить SSMS, открыть AS, выбрать профайлер, посмотреть MDX запрос, открыть в SSMS MDX query, скопировать из профайлера строку, отредактировать на свой вкус до состояния полной готовности.
2. Установить Просмотр MDX запросов прямо из Excel и наслаждаться жизнью.
5 фев 13, 12:02    [13876684]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
Andy_OLAP,

решил проблему так

select

мера on rows

from cube where {(измерение1), (измерение2)} * {(измерение3)}
5 фев 13, 12:07    [13876727]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
мугуль,

WITH MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб]", "[Measures].[мера]") ----как сюда добавить "where"?

SELECT NON EMPTY
{MEASURES.LOOKUPCUBEDEMO,[Measures].[мера2]

}

on columns
FROM [куб2] where измерение
5 фев 13, 16:03    [13878679]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль
мугуль,

WITH MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб]", "[Measures].[мера]") ----как сюда добавить "where"?

SELECT NON EMPTY
{MEASURES.LOOKUPCUBEDEMO,[Measures].[мера2]

}

on columns
FROM [куб2] where измерение

В конструкцию вписываете: LOOKUPCUBE("[куб]", "ваш mdx запрос") в формате вычисляемого мебмера, т.е. как если бы вы его писали в простом запросе: with member [measures].[SuperMember] as ('ваш mdx запрос')
5 фев 13, 16:22    [13878853]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
user6278,

WITH MEMBER Measures.x AS
(
[Measures].[мера] -------------- сюда подставить where?
)

MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб]", "[Measures].[x]")


SELECT NON EMPTY
{[Measures].[x],
[Measures].[мера2]} on columns
FROM [куб2] where измерение
5 фев 13, 16:37    [13878997]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль,

Год телепатии продолжается ...

У Вас есть два запроса:
1. Запрос к кубу 1 с условием where
2. Запрос к кубу 2 + какие то данные из куба 1

Что нужно сделать:
1. Переписать запрос 1 переместив условие из where в with member (это нужно для того, чтобы вставить его в запрос 2)
2. Переписанный запрос 1 подставляете в запрос 2, в синтаксисе указанным ранее.
5 фев 13, 16:51    [13879135]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
user6278,

у меня 2 куба

в кубе1
мера1
измерение1 - дата

в кубе2
мера2
измерение1 - дата



я хочу написать запрос: мера1+мера2 и измерение 1
5 фев 13, 16:58    [13879218]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль
user6278,

у меня 2 куба

в кубе1
мера1
измерение1 - дата

в кубе2
мера2
измерение1 - дата



я хочу написать запрос: мера1+мера2 и измерение 1

Пишите.
5 фев 13, 17:16    [13879396]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
user6278,

у меня не поулчается поставить фильтр
на 2 куба сразу. только на 1
5 фев 13, 17:23    [13879453]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль,

Вам не надо ставить фильтр на два куба. Пишите запрос к кубу 2, и дописываете его с под запросом (через with member и lookupcube) к кубу 1 - и все. Все же выше уже расписано.
5 фев 13, 17:27    [13879506]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]
5 фев 13, 17:38    [13879628]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 376
мугуль
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]

Ну это вообще элементарно.

CREATE MEMBER CURRENTCUBE.[Measures].[Сумма двух мер]
AS
LookupCube("первый_куб_сосед","([Measures].[мера_из_первого_куба_соседа]
, "+[Общее измерение даты OLAP базы].[Иерархия даты].currentmember.uniquename+"")")
+
LookupCube("второй_куб_сосед","([Measures].[мера_из_второго_куба_соседа]
, "+[Общее измерение даты OLAP базы].[Иерархия даты].currentmember.uniquename+"")")
5 фев 13, 17:43    [13879670]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]

Вписываете туда конструкцию для измерения времени: ... ,([Дата2].[Год - Месяц - День].[День]&[" + [Дата1].[Год - Месяц - День].currentmember.properties("key_value") + "])
Где [Дата2] - дата куба 2, [Дата1] - дата куба 1.
5 фев 13, 17:44    [13879673]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
Спасибо за помошь. но увы, не получилось у меня :(
5 фев 13, 18:07    [13879803]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль,

Тянул Дед репку, и Бабку позвал, и Внучку и Жучку и Мышку и все никак не вытянул ....
5 фев 13, 18:10    [13879823]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
user6278,

вот мой запрос

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]


куда вписать эту штуку?


Вписываете туда конструкцию для измерения времени: ... ,([Дата2].[Год - Месяц - День].[День]&[" + [Дата1].[Год - Месяц - День].currentmember.properties("key_value") + "])
Где [Дата2] - дата куба 2, [Дата1] - дата куба 1.


куда эту конструкцию вписывать?
5 фев 13, 18:16    [13879844]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 5998
мугуль
добрый!

Как написать mdx запрос который бы оъединил данные из нескольких кубов?

спасибо!


господа, ну зачем делать то, для чего SSAS не заточен. осчатливите вы врядли кого, а вот головную боль точно заработаете.

Lookup Cube это как раз крылья птицы киви.
5 фев 13, 20:26    [13880400]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
user6278
Member

Откуда:
Сообщений: 243
мугуль,

Напишите по человечески оба Ваших запроса и Вам помогут.
6 фев 13, 10:15    [13882191]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 376
мугуль
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]


Еще раз, медленно и последовательно.
Вы написали формулу LOOKUPCUBEDEMO, которая тянет из куба "куб1" просто всю сумму показателя "мера" за все даты.
Если Вы хотите получить за конкретную дату, месяц, день - Вам нужно передать для каждого значения LOOKUPCUBEDEMO запрос на соответствующее число.

Поэтому формула пишется по-другому. Я уже неоднократно написал, как именно передается в первый куб значение даты.
Еще раз.


with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера], " + [Измерение даты].[Иерархия даты].currentmember.uniquename + ")").

Вы выбираете LOOKUPCUBEDEMO за 1 января 2013.
[Измерение даты].[Иерархия даты].currentmember.uniquename в данном случае будет [Дата.[
Из куба2 в куб 1 улетает запрос.
6 фев 13, 11:06    [13882540]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 376
Andy_OLAP
мугуль
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера]")


SELECT NON EMPTY
MEASURES.LOOKUPCUBEDEMO on columns
FROM [куб2] where [даты]



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]


Еще раз, медленно и последовательно.
Вы написали формулу LOOKUPCUBEDEMO, которая тянет из куба "куб1" просто всю сумму показателя "мера" за все даты.
Если Вы хотите получить за конкретную дату, месяц, день - Вам нужно передать для каждого значения LOOKUPCUBEDEMO запрос на соответствующее число.

Поэтому формула пишется по-другому. Я уже неоднократно написал, как именно передается в первый куб значение даты.
Еще раз.


with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

LOOKUPCUBE("[куб1]", "[Measures].[мера], " + [Измерение даты].[Иерархия даты].currentmember.uniquename + ")").

Вы выбираете LOOKUPCUBEDEMO за 1 января 2013.
[Измерение даты].[Иерархия даты].currentmember.uniquename в данном случае будет [Дата.[
Из куба2 в куб 1 улетает запрос.


[Измерение даты].[Иерархия даты].currentmember.uniquename в данном случае будет [Дата].[Г-М-Д].&[20130101], например.
Поэтому из куба 2 в куб 1 улетит запрос
([Measures].[мера], [Дата].[Г-М-Д].&[20130101]).

Выберете для LOOKUPCUBEDEMO 2 даты - в куб1 улетят 2 запроса для 20130101 и 20130102. И так далее.

Точно так же можно передавать значение фильтров куба2 на любые измерения, которые связаны в кубе1 с нужной меры.
Теперь точно все.
6 фев 13, 11:09    [13882552]     Ответить | Цитировать Сообщить модератору
 Re: mdx запрос  [new]
мугуль
Guest
Andy_OLAP,


Спасибо! все стало понятно !

WITH MEMBER MEASURES.LOOKUPCUBEDEMO AS


LOOKUPCUBE("[куб1]", "[Measures].[мера1], " + [Даты].[Год].&[2013].currentmember.uniquename + ")")


SELECT NON EMPTY
{MEASURES.LOOKUPCUBEDEMO,
[Measures].[мера2]
}

on columns
FROM [куб2] where [Даты].[Год].&[2013]


вернул ошибку

LOOKUPCUBEDEMO #Error
6 фев 13, 11:38    [13882782]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / OLAP и DWH Ответить