【问题标题】:MDX Calculated member Sum of selected members rollupMDX 计算成员 选定成员汇总的总和
【发布时间】:2011-03-31 01:00:04
【问题描述】:

我正在尝试编写一个计算成员,该成员将根据轴上提供的选定值沿维度滚动。

产品 -> 子类别 -> 类别 雷克萨斯 -> 轿车 -> 汽车 雷克萨斯-coupe -> coupe -> 汽车 宝马 -> 轿车 -> 汽车 bmw-coupe -> 情侣 -> 汽车 福特 -> 皮卡 -> 卡车 chev -> 皮卡 -> 卡车 福特-suv -> suv -> 卡车 林肯导航 -> SUV -> 卡车

[计算量度] = [量度].[a]+[量度].[b]

假设用户只想在汽车级别查看 lexus-coupe 和 bmw 的 [Calculated measure]。您如何创建一个计算度量,该度量将根据维度中选择的内容在汽车级别汇总?

提前谢谢你!

【问题讨论】:

  • “已被选中”是什么意思?您有 MDX 请求的示例吗?顺便说一下,您可以查看有关计算成员 here 的文档
  • 抱歉延迟回复 - 出城了。所以 MDX 请求的语法...类似于SELECT [Measures].[MyMeasure] on columns, filter(descendants(product.sedan, product.category, self_and_before), <some filter criteria that removes some leaves>) on rows from mycube) .... where [measures].[MyMeasure] is defined as the tuple of (product.CurrentMember, OtherDimension.ParticularMember, measures.SomeOtherMeasure。是的,我知道这很愚蠢,但客户想要 SomeOtherMeasure/ParticularMember 元组的度量字段,它将以其他维度为中心。

标签: ssas mdx olap


【解决方案1】:

我之前编写过 MDX 来检查行(或列)上使用了哪些维度并更改计算度量的方式。有点乱。

此示例查看轴 1(行?)是否正在使用任何度量,并可以相应地更改计算:

IIF(InStr(1, SetToStr(StrToSet("Axis(1)")), "[Measures].") = 0, blah, blah)

不记得为什么我做了 StrToSet 和 SetToStr,但它成功了!

您可以使用 VBA 字符串函数(如 InStr())来检查用户在行和列上选择的内容,并相应地调整您的计算成员...

【讨论】:

  • 这是有道理的,但我正在寻找能够通过 Axis(1) 中的维度级别正确滚动的“废话”...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
相关资源
最近更新 更多