gpt4 book ai didi

mdx - 如何在 MDX 中使用从两个关键字返回匹配项的搜索

转载 作者:行者123 更新时间:2023-12-01 13:48:12 26 4
gpt4 key购买 nike

我是 mdx 新手。

有没有办法像我们在 MySQL 中使用 LIKE '%iphone' AND LIKE '%samsung' 那样使用 MDX 搜索并返回两个关键字的匹配项?

我的 MDXcode 是:

SELECT
NON EMPTY {[Measures].[Average Price]} ON COLUMNS,
Filter({[Product Names].MEMBERS},
[Product Name].CurrentMember.Name MATCHES '(?i)apple.*' or [Product Name].CurrentMember.Name MATCHES '(?i)screen.*') ON ROWS
FROM [Price History]

在我的代码中,可以满足任何搜索条件,但我希望这两个条件都得到满足。

请问有什么办法吗?

最佳答案

MDX 没有 LIKE 运算符,但是您可以使用 InStr 函数来检查关键字是否属于名字。

with member measures.iPhoneInName as
VBA!InStr([Product Name].CurrentMember.Name, "iPhone")

member measures.SamsungInName as
VBA!InStr([Product Name].CurrentMember.Name, "Samsung")

SELECT
NON EMPTY {[Measures].[Average Price]}
ON COLUMNS,
[Product Names].MEMBERS
HAVING
measures.iPhoneInName >= 1
OR
measures.SamsungInName >= 1
ON ROWS
FROM [Price History]

编辑:如果您只想要那些名称以 iPhoneSamsung 结尾的成员,那么在代码中添加一个小部分:

(
VBA!InStr([Product Name].CurrentMember.Name) + len("Samsung") + 1
= LEN([Product Name].CurrentMember.Name)
AND measures.SamsungInName >= 1
)
OR
(
VBA!InStr([Product Name].CurrentMember.Name) + len("iPhone") + 1
= LEN([Product Name].CurrentMember.Name)
AND measures.iPhoneInName >= 1
)

蒙德里安版

    with member measures.iPhoneInName as
VBA!InStr([Product Name].CurrentMember.Name, "iPhone")

member measures.SamsungInName as
VBA!InStr([Product Name].CurrentMember.Name, "Samsung")

SELECT
NON EMPTY {[Measures].[Average Price]}
ON COLUMNS,
FILTER
(
[Product Names].MEMBERS,
(
VBA!InStr([Product Name].CurrentMember.Name) + len("Samsung") + 1
= LEN([Product Name].CurrentMember.Name)
AND measures.SamsungInName >= 1
)
OR
(
VBA!InStr([Product Name].CurrentMember.Name) + len("iPhone") + 1
= LEN([Product Name].CurrentMember.Name)
AND measures.iPhoneInName >= 1
)
)
ON ROWS
FROM [Price History]

关于mdx - 如何在 MDX 中使用从两个关键字返回匹配项的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179850/

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