【发布时间】:2019-05-30 16:25:39
【问题描述】:
我有一个名为[Band] 的维度,它可以有几个不同的值:
[Band].&[A]&[Under $400]
[Band].&[B]&[$400 - $1,000]
[Band].&[C]&[$1,000 - $2,500]
[Band].&[D]&[$2,500 - $3,500]
...
我正在尝试编写一个查询,我可以在其中剪切这些值的子列表。
这里的查询不起作用,因为 .isin 函数在 MDX 中不存在,但你会看到我正在尝试做什么:
SELECT
NON EMPTY {[Measure A], [Measure B]} ON COLUMNS,
NON EMPTY {([Band].isin(['Under $400', '$400 - $1,000']).ALLMEMBERS)} --fail on .isin(
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS
FROM (
SELECT
({[Foo].&[Bar]}) ON COLUMNS
FROM
[CUBE]
)
现在,这是一个有效的查询,但它只给了我一个 [Band] 值:
SELECT
NON EMPTY {[Measure A], [Measure B]} ON COLUMNS,
NON EMPTY {([Band].&[A]&[Under $400])}
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS
FROM (
SELECT
({[Foo].&[Bar]}) ON COLUMNS
FROM
[CUBE]
)
这会返回一个有效的结果:
Measure A Measure B
Under $400 1795.67% 58.48%
但我希望看到它返回多个 [Band] 维度值的聚合值的结果。这在 MDX 中如何实现?
您可能会说我以前从未使用过 MDX,但是当我搜索这个问题时,我看到了 taking the intersect 或使用 ChildrenSet 之类的东西。但这似乎不是很直观。
你能指出我正确的方向吗?
【问题讨论】: