【发布时间】:2015-08-04 10:10:10
【问题描述】:
我正在编写涉及超过 2 个轴的 SSAS MDX 查询以检索值。使用 ADOMD.NET,我可以获取返回的单元集并通过使用确定值
lblTotalGrossSales.Text = CellSet.Cells(0).Value
有没有办法在我的 MDX 查询中获取 CellSet 的 Cell(0) 值,而不是依赖返回到 ADOMD.NET 的数据?
谢谢!
编辑 1: - 根据 Daryl 的评论,这里有一些关于我在做什么的详细说明。我当前的查询是使用几个轴',即:
SELECT {[Term Date].[Date Calcs].[MTD]} ON 0,
{[Sale Date].[YQMD].[DAY].&[20121115]} ON 1,
{[Customer].[ID].[All].[A612Q4-35]} ON 2,
{[Measures].[Loss]} ON 3
FROM OUR_CUBE
如果我在 Management Studio 中运行该查询,我会被告知无法为具有两个以上轴的单元集显示结果 - 这是有道理的,因为......你知道......有超过 2 个轴。但是,如果我使用 ADOMD.NET 在线运行此查询,并将返回值读入 ADOMD.NET 单元集,我可以检查单元格“0”处的值,给出我的值......据我所知它(我是立方体的总菜鸟)是所有这些值相交的值。
所以要回答您的问题 Daryl,我希望能够将此处的值返回给我,而不必将单元格集读取到调用应用程序中。为什么你可能会问?好吧.. 最终,我希望有一个查询来执行多个多轴查询以返回值。再说一次.. 我对立方体和 MDX 非常陌生,所以我可能完全错了(我是一名 .NET 开发人员)。
【问题讨论】:
-
我不确定您要达到的目标。您问“有没有一种方法可以在我的 MDX 查询中获取 CellSet 的 Cell(0) 值”-您的 mdx 是否返回所需的响应并且您想要组织单元集以使其更具可读性,或者您是否想要更改底层 mdx询问?也许您希望实现的伪代码示例会有所帮助
-
谢谢 Daryl,刚刚添加了更多细节
-
感谢 ewitkows,这有帮助。只是为了确保我们不会使情况过于复杂,您是打算消耗所有四个轴还是交叉连接两个轴就足够了?选择 {[Measures].[Loss]} ON 0, {[Term Date].[Date Calcs].[MTD] * [Sale Date].[YQMD].[DAY].&[20121115] * [Customer]。 [ID].[All].[A612Q4-35]} ON 1 FROM OUR_CUBE
-
不,不使用这 4 个轴值中的任何一个,只使用它们所有相交处的值(如果有意义,哈哈)
-
所以上面的 mdx(在评论中)将返回您在 2 轴上需要的数据,因此可以在 management studio 中工作。如果您不需要维度详细信息,则可以将其移动到切片器中,只留下度量。