Я относительно новичок в MDX, около месяца или около того, и сейчас я пишу запросы MDX к удаленному кубу, над которым я также работаю (Java 8 ActivePivot).
Этот запрос работает, когда они OR. , но когда я добавляю круглые скобки и заменяю это первое ИЛИ на И, оно работает, вроде как, но отбрасывает меру, в результате чего размеры CDR и BOOK возвращаются правильно. Может кто-то с большим знанием MDX сказать мне, что я пропустил или еще не знаю?
WITH
Member [Measures].[CDR_Label] AS [CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY
{[Measures].[CDR_Label],
[Measures].[Book_Label],[Measures].[RepoRate.LATEST]}
ON COLUMNS,
NON EMPTY
FILTER(
([CDR].CHILDREN,[Book].CHILDREN), (LEFT([CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION,1) = "8") AND
(LEFT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,2) = "ST" OR
RIGHT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,4) = "CIES"))
ON ROWS
FROM [TraderCube]
WHERE ([Date].[Date].[2019-10-23])
И вот запрос, прежде чем я изменил его, с ИЛИ ИЛИ и т. Д., Который работает. Я хотел, чтобы вышеприведенный код возвращал только CDR, начинающийся с 8, что он и делает, но он теряет меру (а также ломает мои заголовки - так как на самом деле это происходит изнутри функции xll / custom Excel, в dll, вызывающую удаленныйкуб, использующий пакет AdomdClient, поскольку я создаю очень собственный плагин - по сути, возможность для пользователей использовать простые слова / из представленных перечислений, а затем я перевожу и конструирую MDX в C # для запуска в кубе. Данные возвращаются, и я отправляю двумерные массивы обратнов Excel :)).
WITH
Member [Measures].[CDR_Label] AS [CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION SELECT NON EMPTY {[Measures].[CDR_Label],[Measures].[Book_Label],[Measures].[RepoRate.LATEST]}
ON COLUMNS,
NON EMPTY
FILTER(
([CDR].CHILDREN,[Book].CHILDREN),
LEFT([CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION,1) = "8" OR
LEFT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,2) = "ST" OR
RIGHT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,4) = "CIES")
ON ROWS
FROM [TraderCube]
WHERE ([Date].[Date].[2019-10-23])