MDX,CellSet包含元数据?

时间:2011-12-27 17:36:42

标签: sql-server mdx

所以我有以下MDX查询,它针对AdventureWorks示例多维数据集运行。

SELECT NON EMPTY ([Date].[Fiscal Semester of Year].[Fiscal Semester of Year],{[Measures].[Internet Order Count], [Measures].[Average Unit Price]}) ON 0,
NON EMPTY([Product].[Status].[Status] ,[Customer].[Country].[Country]) ON 1
FROM [Adventure Works]

这给出了一个看起来有点像的结果:

      H1     H2    H1    H2
     X1 X2  X1 X2 X1 X2 X1 X2
A A1
A A2
A A3
B A1       numbers
B A2
B A3

CellSet有各种各样的元数据,但据我所知,它们都没有描述这种结构。它似乎不包括诸如度量名称或维度名称等有用的东西。

任何线索?如果我在Management Studio中执行上述查询,它会很好地为我格式化。是因为它解析MDX很聪明,还是因为它正在访问我还没有找到的一些元数据呢?

顺便说一句,我可以通过连接查询多维数据集并以这种方式获取大量与多维数据集相关的信息,但我需要一种方法将其与我的查询结果相关联。

我可能会有一个CellSet,但不是生成它的源MDX。

由于

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

CellSet cs = cmd.ExecuteCellSet();
Axis columns = cs.Axes[0];
TupleCollection columnTuples = columns.Set.Tuples;
for (int i = 0; i < columnTuples.Count; i++)
{
    string caption = columnTuples[i].Members[0].Caption;
}
Axis rows = cs.Axes[1];
TupleCollection rowTuples = rows.Set.Tuples;
foreach (Position rowPos in rows.Positions)
{
    string caption = rowTuples[rowNum].Members[0].Caption;
}