MDX WHERE:几个条件之间的“AND”

时间:2010-10-27 06:41:16

标签: mdx business-intelligence pentaho

此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 个答案:

答案 0 :(得分:3)

我想你需要在切片器中定义一个集合:

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 :(得分:1)

这应该产生你需要的结果:(子选择)

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]})

答案 2 :(得分:1)

USE *而不是AND,。 有用 欢迎您

答案 3 :(得分:0)

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

答案 4 :(得分:0)

也许这样的事情会起作用

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]})))

答案 5 :(得分:0)

如上所述,您可以使用*而不是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]