如何从c#中的mdx查询中检索数据?

我试图使用Adomdclient库从MDX查询获取数据.我依靠这个例子 http://www.yaldex.com/sql_server/progsqlsvr-CHP-20-SECT-6.html.

MDX查询

SELECT {[Measures].[Cantidad Vta],[Measures].[Monto Vta],[Measures].[ExistenciaHistorica],[Measures].[Valor Inventario historico]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS,NON EMPTY Hierarchize({DrilldownLevel({[DIM SUBmarcA].[Código].[All]})}) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS FROM (SELECT ({[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Bodega],[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Cadena],[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Outlet]}) ON COLUMNS FROM [JUGUETRONHQ]) WHERE ([DIM FECHA VENTA].[JERARQUIA FECHA VENTA].[Time].&[2012-01-01T00:00:00],[DIM FECHA EXISTENCIA].[JERARQUIA FECHA EXISTENCIA].[All]) CELL PROPERTIES VALUE

与其他名称空间(如sqlClient)一样,使用连接,命令和datareader:

using Microsoft.analysisservices.AdomdClient;

...

using (AdomdConnection con = new AdomdConnection(connection_string))
{
  con.open();

  using (AdomdCommand command = new AdomdCommand(query,con)) 
  {
    using (AdomdDataReader reader = command.ExecuteReader()) 
    {
      while (reader.Read())
      {
        for (int i = 0; i < reader.FieldCount; i++)
          Console.Write(reader[i] + (i == reader.FieldCount - 1 ? "" : ","));
          Console.WriteLine("");

      }
    }
  }
}

但是,此代码段只能正确显示5列中的4列:

[DIM SUBmarcA].[Código].[All],3,825

肯定是:

115200081,825

也许需要一个演员,但我不知道该怎么做.

解决方法

这看起来像是MDX查询的问题,而不是数据的检索.它没有正确地约束[DIM SUBmarcA].[Código]维度.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...