MDX ГДЕ: «И» между несколькими условиями - PullRequest
3 голосов
/ 27 октября 2010

Этот запрос MDX работает :

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM [SalesAnalysis]
WHERE [Area].[Shanghai]

Этот тоже работает (другое условие WHERE):

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM [SalesAnalysis]
WHERE EXCEPT([Product].[All Products].Children, {[Product].[All Products].[#null]})

Вопрос: Как мне написать запрос с обоими условиями ?
т.е. условием области И состоянием продукта

Я пробовал , и AND но пока не повезло.

Ответы [ 6 ]

3 голосов
/ 27 октября 2010

Полагаю, вам нужно определить набор в вашем слайсере:

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM [SalesAnalysis]
WHERE 
     [Area].[Shanghai] 
     * EXCEPT([Product].[All Products].Children
             , {[Product].[All Products].[#null]})

Обратите внимание, что слайсер MDX не является оператором SQL WHERE;вместо этого вы могли бы взглянуть на выбор MDX.

1 голос
/ 08 ноября 2016

ИСПОЛЬЗОВАНИЕ * Вместо AND или ,.Работает Добро пожаловать

1 голос
/ 24 ноября 2010

Это должно привести к нужным результатам: (Подвыбрать)

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM (SELECT [Area].[Shanghai] on 0 from [SalesAnalysis])
WHERE EXCEPT([Product].[All Products].Children, {[Product].[All Products].[#null]})
0 голосов
/ 27 июля 2017

Как уже упоминалось выше, вы можете использовать * вместо AND.

Пример:

select {[Measures].Members} ON COLUMNS, 
       {[Product].Members} ON ROWS
       from [data_cube]
       where {[Location].[New York] * [Time].[2015]}

В вашем случае это должно выглядеть примерно так:

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM [SalesAnalysis]
WHERE EXCEPT([Product].[All Products].Children, {[Product].[All Products].[#null]}) * [Area].[Shanghai]
0 голосов
/ 02 ноября 2010

Возможно, что-то подобное будет работать

SELECT [Measures].salescount ON COLUMNS,
[Date].[2010] ON ROWS
FROM [SalesAnalysis]
WHERE
 StripCalculatedMembers(CROSSJOIN(
   {[Area].[Shangai]},
   EXCEPT([Product].[All Products].Children, {[Product].[All Products].[#null]})))
0 голосов
/ 27 октября 2010
SELECT 
    [Measures].salescount ON COLUMNS,
    [Date].[2010] ON ROWS
FROM 
   [SalesAnalysis]
WHERE  
   {   
       [Product].[All Products].Children, 
       [Product].[All Products].[#null] 
   }
...