将多个参数传递给WHERE子句的MDX查询

时间:2009-11-26 15:05:11

标签: sql-server mdx

如果我有一个简单的MDX查询,例如:

 SELECT 
 NON EMPTY { [Measures].[Amount] } ON COLUMNS, 
 NON EMPTY {  [Date].[Date].[Date]  } 
 ON ROWS FROM [MyCube] 

我希望通过Id过滤它,这是另一个维度,这很容易。

 SELECT 
 NON EMPTY { [Measures].[Amount] } ON COLUMNS, 
 NON EMPTY {  [Date].[Date].[Date]  } 
 ON ROWS FROM [MyCube] 
WHERE (Asset].[Id].&[123])

但如果我有多个Id,有没有办法在没有动态构建MDX查询的情况下传递这些内容?

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT
    NON EMPTY { [Measures].[Amount] } ON COLUMNS,
    NON EMPTY { [Date].[Date].[Date] } ON ROWS
FROM [MyCube]
WHERE (
   { [Asset].[Id].&[123],[Asset].[Id].&[124]}
)

答案 1 :(得分:2)

我不是100%确定你不动态构建MDX查询的意思,但你想要的查询形式是:

SELECT
    NON EMPTY { [Measures].[Amount] } ON COLUMNS,
    NON EMPTY { [Date].[Date].[Date] } ON ROWS
FROM [MyCube]
WHERE (
    [Asset].[Id].&[123],
    [OtherDim].[Foo].&[3919]
)

...所以我想这需要一些动态的建设,但没有太多的压力。