powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / mdx запрос
25 сообщений из 38, страница 1 из 2
mdx запрос
    #38136919
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый!

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

спасибо!
...
Рейтинг: 0 / 0
mdx запрос
    #38136926
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугульдобрый!

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

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

Ну и так далее. Удачи.
...
Рейтинг: 0 / 0
mdx запрос
    #38136932
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,

Спасибо! сейчас попробую!
...
Рейтинг: 0 / 0
mdx запрос
    #38137622
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мугуль,

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

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

select

мера on rows

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


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

Указанные в функции два множества имеют различную размерность.
...
Рейтинг: 0 / 0
mdx запрос
    #38137656
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугульмугуль,

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

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

select

мера on rows

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


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

Указанные в функции два множества имеют различную размерность.
Вариантов 2:
1. Запустить SSMS, открыть AS, выбрать профайлер, посмотреть MDX запрос, открыть в SSMS MDX query, скопировать из профайлера строку, отредактировать на свой вкус до состояния полной готовности.
2. Установить Просмотр MDX запросов прямо из Excel и наслаждаться жизнью.
...
Рейтинг: 0 / 0
mdx запрос
    #38137669
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,

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

select

мера on rows

from cube where {(измерение1), (измерение2)} * {(измерение3)}
...
Рейтинг: 0 / 0
mdx запрос
    #38138230
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мугуль,

WITH MEMBER MEASURES.LOOKUPCUBEDEMO AS

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

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

}

on columns
FROM [куб2] where измерение
...
Рейтинг: 0 / 0
mdx запрос
    #38138283
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугульмугуль,

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 запрос ')
...
Рейтинг: 0 / 0
mdx запрос
    #38138337
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 измерение
...
Рейтинг: 0 / 0
mdx запрос
    #38138384
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль,

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

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

Что нужно сделать:
1. Переписать запрос 1 переместив условие из where в with member (это нужно для того, чтобы вставить его в запрос 2)
2. Переписанный запрос 1 подставляете в запрос 2, в синтаксисе указанным ранее.
...
Рейтинг: 0 / 0
mdx запрос
    #38138413
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user6278,

у меня 2 куба

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

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



я хочу написать запрос: мера1+мера2 и измерение 1
...
Рейтинг: 0 / 0
mdx запрос
    #38138469
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугульuser6278,

у меня 2 куба

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

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



я хочу написать запрос: мера1+мера2 и измерение 1
Пишите.
...
Рейтинг: 0 / 0
mdx запрос
    #38138494
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user6278,

у меня не поулчается поставить фильтр
на 2 куба сразу. только на 1
...
Рейтинг: 0 / 0
mdx запрос
    #38138514
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль,

Вам не надо ставить фильтр на два куба. Пишите запрос к кубу 2, и дописываете его с под запросом (через with member и lookupcube) к кубу 1 - и все. Все же выше уже расписано.
...
Рейтинг: 0 / 0
mdx запрос
    #38138552
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user6278,

with
MEMBER MEASURES.LOOKUPCUBEDEMO AS

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


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



проблема в том что эта мера "MEASURES.LOOKUPCUBEDEMO" на это условие не реагирует --> where [даты]
...
Рейтинг: 0 / 0
mdx запрос
    #38138566
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль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+"")")
...
Рейтинг: 0 / 0
mdx запрос
    #38138567
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль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.
...
Рейтинг: 0 / 0
mdx запрос
    #38138614
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помошь. но увы, не получилось у меня :(
...
Рейтинг: 0 / 0
mdx запрос
    #38138624
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль,

Тянул Дед репку, и Бабку позвал, и Внучку и Жучку и Мышку и все никак не вытянул ....
...
Рейтинг: 0 / 0
mdx запрос
    #38138634
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.


куда эту конструкцию вписывать?
...
Рейтинг: 0 / 0
mdx запрос
    #38138890
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугульдобрый!

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

спасибо!

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

Lookup Cube это как раз крылья птицы киви.
...
Рейтинг: 0 / 0
mdx запрос
    #38139444
user6278
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мугуль,

Напишите по человечески оба Ваших запроса и Вам помогут.
...
Рейтинг: 0 / 0
mdx запрос
    #38139548
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 улетает запрос.
...
Рейтинг: 0 / 0
mdx запрос
    #38139552
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 с нужной меры.
Теперь точно все.
...
Рейтинг: 0 / 0
mdx запрос
    #38139599
мугуль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / mdx запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]