MDX-Как вернуть несколько мер - PullRequest
1 голос
/ 06 июля 2019

Я пытаюсь оптимизировать 2-строчный запрос SSAS в Power BI, используя MDX до Power Query. У меня есть опыт работы с T-SQL, и я нашел веб-сайт, помогающий перевести опыт работы с T-SQL в MDX, который был успешным для некоторых запросов (базовый выбор строк / столбцов, перекрестные объединения, непустые операции, упорядочение по, фильтрация, где). Теперь я хочу получить данные о продажах, которые содержат три измерения и четыре показателя, но я получаю следующую ошибку:

Выполнение запроса ... Запрос (3, 1) Иерархия «Показатели» появляется в кортеже более одного раза. Выполнить завершено

Я попытался сделать несколько изменений, связанных с соединением мер и измерений, выбрав только одну меру (которая все еще занимала слишком много времени) и указав элементы против детей.

'' '

 select
    ([Date].[OrderDate].children, [Customer].[CustID].children, [ProdLevel].[ProdNumber].children) on rows,
    ([Measures].[Revenue], [Measures].[Units], [Measures].[ASP], [Measures].[Profit]) on columns
    from [RepProdDB]
    where [ProdLevel].[Prod Description].[MyBusinessUnit]

'' '

Поиск ошибки: «Иерархия« Показатели »появляется в кортеже более одного раза». это немного расплывчато для меня, так как у меня небольшое, но, вероятно, неполное понимание кортежей.

Я надеюсь, что у меня есть кое-что, что я могу легко получить в PivotTable OLAP, Power Pivot и Power Query, но используя реальный код MDX. Мысли?

1 Ответ

2 голосов
/ 06 июля 2019

Итак, вам нужно понять разницу между кортежами и сетами.

select
non empty
(
[Date].[OrderDate].children, 
[Customer].[CustID].children, 
[ProdLevel].[ProdNumber].children
) 
on rows,
{
[Measures].[Revenue], 
[Measures].[Units], 
[Measures].[ASP], 
[Measures].[Profit]
} 
on columns
from [RepProdDB]
where 
[ProdLevel].[Prod Description].[MyBusinessUnit]
...