将列表解析为 MDX 查询(MDX M Power BI 中的列表)
Parse a List to an MDX Query (List in MDX M Power BI)
我正在寻找一种方法来将以前检索到的列表集成为 MDX 查询中 FILTER 的输入。我目前有以下代码:
segment_var = Segment,
mdxQ = "SELECT
NON EMPTY ( { [Measures].[AMT] * [Forecast Type].[Forecast Type].[Forecast Level 2] } ) DIMENSION PROPERTIES MEMBER_NAME ON COLUMNS,
NON EMPTY ( {
[Period].[Year Month Name].[Name] *
[PL Spec].[PL Spec].[Level 6 Code].allmembers
} ) ON ROWS
FROM (
SELECT ( { [Forecast Type].[Current Indicator].&[Y] } ) ON COLUMNS
FROM (
SELECT ( { [PL Spec].[PL Spec].[Level 1 Code].&[101] } ) ON COLUMNS
FROM [AIR]))
WHERE (
FILTER([Management Structure - Segment].[Management Structure - Segment].[MS Level 5].ALLMEMBERS , [Management Structure - Segment].[Management Structure - Segment].currentmember.name=""" & segment_var & """))",
第 1 行的细分过去是单值参数,但我想使用细分列表 (listSegment) 作为参考,以便结果过滤多个细分。我试过 WHERE IN 解决方案,但我似乎无法让它工作。任何帮助将不胜感激。
错误:
Expression.Error: We cannot apply operator & to types Text and List.
尝试将 segment_var 生成为
{[Management Structure - Segment].[Management Structure - Segment].[1], [Management Structure - Segment].[Management Structure - Segment].[2], ...}
设法通过以下方式解决问题:
- 创建要在查询中过滤的值列表
- 使用“、”转置和组合列表
- 转换为单变量
代码:
Convert =
Table.ToList(
Table.Transpose(
Table.FromList(#"Distinct")),
Combiner.CombineTextByDelimiter(", ")),
Var = List.First(Convert)
我正在寻找一种方法来将以前检索到的列表集成为 MDX 查询中 FILTER 的输入。我目前有以下代码:
segment_var = Segment,
mdxQ = "SELECT
NON EMPTY ( { [Measures].[AMT] * [Forecast Type].[Forecast Type].[Forecast Level 2] } ) DIMENSION PROPERTIES MEMBER_NAME ON COLUMNS,
NON EMPTY ( {
[Period].[Year Month Name].[Name] *
[PL Spec].[PL Spec].[Level 6 Code].allmembers
} ) ON ROWS
FROM (
SELECT ( { [Forecast Type].[Current Indicator].&[Y] } ) ON COLUMNS
FROM (
SELECT ( { [PL Spec].[PL Spec].[Level 1 Code].&[101] } ) ON COLUMNS
FROM [AIR]))
WHERE (
FILTER([Management Structure - Segment].[Management Structure - Segment].[MS Level 5].ALLMEMBERS , [Management Structure - Segment].[Management Structure - Segment].currentmember.name=""" & segment_var & """))",
第 1 行的细分过去是单值参数,但我想使用细分列表 (listSegment) 作为参考,以便结果过滤多个细分。我试过 WHERE IN 解决方案,但我似乎无法让它工作。任何帮助将不胜感激。
错误:
Expression.Error: We cannot apply operator & to types Text and List.
尝试将 segment_var 生成为
{[Management Structure - Segment].[Management Structure - Segment].[1], [Management Structure - Segment].[Management Structure - Segment].[2], ...}
设法通过以下方式解决问题:
- 创建要在查询中过滤的值列表
- 使用“、”转置和组合列表
- 转换为单变量
代码:
Convert =
Table.ToList(
Table.Transpose(
Table.FromList(#"Distinct")),
Combiner.CombineTextByDelimiter(", ")),
Var = List.First(Convert)