【发布时间】:2015-03-12 20:20:26
【问题描述】:
我试图在 PerformancePoint MDX 查询过滤器中模拟此过滤器功能,然后将其连接到记分卡。
SELECT
[Dim Status Month].[MONTHS].MEMBERS ON COLUMNS,
FILTER ([Dim Project].[LOB].MEMBERS,
(
strtomember('[Dim Project].[PM Login].&[' + CUSTOMDATA() + ']')
or
strtomember('[Dim Project].[TM Login].&[' + CUSTOMDATA() + ']')
or
strtomember('[Dim Project].[PAL Login].&[' + CUSTOMDATA() + ']')
or
strtomember('[Dim Project].[DO Login].&[' + CUSTOMDATA() + ']')
or
strtomember('[Dim Project].[ED Login].&[' + CUSTOMDATA() + ']')
)
) ON ROWS
FROM [GLOBALDELIVERYREPORTING]
CustomerData() 是当前用户名。
它适用于单一条件,例如:
strtomember('[Dim Project].[PAL Login].&[' + CUSTOMDATA() + ']')
我无法弄清楚使用多个条件的语法,即使当我直接对多维数据集运行它们时它们工作正常。
所以,我在过滤器的 MDX 查询窗口中删除了过滤器文本,并从 SQL 分析器中获取了查询,这就是它最终的样子:
WITH SET [7afbf0ad32e34820ab610fb5927a5f6e] AS HEAD({ StrToSet("Filter Text Here") }, 5001)
SELECT
{
IIF(COUNT([7afbf0ad32e34820ab610fb5927a5f6e])=0, { },
{(EXTRACT([7afbf0ad32e34820ab610fb5927a5f6e], [7afbf0ad32e34820ab610fb5927a5f6e](0)(0).Dimension) AS [7afbf0ad32e34820ab610fb5927a5f6eX]),
(GENERATE(
[7afbf0ad32e34820ab610fb5927a5f6eX],
{
{ [7afbf0ad32e34820ab610fb5927a5f6eX].CURRENT.ITEM(0).PARENT, [7afbf0ad32e34820ab610fb5927a5f6eX].CURRENT.ITEM(0) }(0)
},
ALL))})
}
DIMENSION PROPERTIES MEMBER_TYPE ON 0,
{ } ON 1
FROM [GlobalDeliveryReporting]
【问题讨论】:
-
当您认为与
strtomember('[Dim Project].[PAL Login].&[' + CUSTOMDATA() + ']')一起使用时,您确定数据正确吗? -
是的,数据是正确的,customdata就是连接字符串中经过认证的用户名
-
嗯。我现在要回家,但明天会看看这个。有点迷失方向 - 我们现在要回答的问题是什么?!
-
笑。如何在 PerformancePoint(用于 SharePoint 2010)MDX 查询筛选器中使用多个或条件
-
不确定您包含的第二个脚本与第一个脚本有何关系。甚至是第一行!为什么它会拉出它创建的集合
[7afbf0ad32e34820ab610fb5927a5f6e]的前 5001 个成员?只是一个评论,但 PerformancePoint 不会永远存在 - 您是否尝试使用 SSRS 来解决这个问题?
标签: filter mdx performancepoint