gpt4 book ai didi

ssas - 在 MDX 中实现 IN/LIKE

转载 作者:行者123 更新时间:2023-12-04 12:26:37 24 4
gpt4 key购买 nike

我有一个维度叫 [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]值(value):
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 .但它似乎不是很直观。

你能为我指出正确的方向吗?

最佳答案

因此,以下是如何在 MDX 中实现 IsIn 功能的列表

1)您想使用 in 子句过滤并显示成员。
在此示例中,我想查看 Adventurewroks 示例数据库中自行车和服装类别的互联网销售情况

select 
[Measures].[Internet Sales Amount]
on columns,
{[Product].[Category].&[1]
,[Product].[Category].&[3]}
on rows
from
[Adventure Works]

结果

enter image description here

2)我想通过 IN 子句过滤但不想显示成员
在此示例中,我想查看 Adventurewroks 示例数据库中自行车和服装类别的年度互联网销售额。结果是被岁月打破。
select 
[Measures].[Internet Sales Amount]
on columns,
non empty
[Date].[Calendar Year].[Calendar Year]
on rows
from
[Adventure Works]
where
{[Product].[Category].&[1]
,[Product].[Category].&[2]}

结果

enter image description here

您可以通过使用子查询实现相同的目的
select 
[Measures].[Internet Sales Amount]
on columns,
non empty
[Date].[Calendar Year].[Calendar Year]
on rows
from
(select {[Product].[Category].&[1],[Product].[Category].&[2]} on 0 from [Adventure Works])

结果

enter image description here

3)当你想实现基于名称的IN子句时
在此示例中,我想查看 Adventurewroks 示例数据库中自行车和服装类别的互联网销售情况,但在本例中,我使用的是标题
select 
[Measures].[Internet Sales Amount]
on columns,
filter(
[Product].[Category].[Category],
[Product].[Category].currentmember.name='Bikes' or [Product].[Category].currentmember.name='Clothing'
)
on rows
from
[Adventure Works]

结果 :

enter image description here

4)当您根据名称实现 IN 子句并且您的条件正在寻找特定文本时(如 Clause )
在这个例子中,我想从 Adventurewroks 示例数据库中查看自行车和服装类别的互联网销售情况,但在这种情况下,我正在搜索一段字符串的标题名称。
select 
[Measures].[Internet Sales Amount]
on columns,
FILTER([Product].[Category].[Category],
Instr([Product].[Category].currentmember.name, 'Bik') > 0
or
Instr([Product].[Category].currentmember.name, 'oth') > 0
)
on rows
from
[Adventure Works]

结果

enter image description here

关于ssas - 在 MDX 中实现 IN/LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56382079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com