Я пытаюсь имитировать эту функцию фильтра в фильтре запросов PerformancePoint MDX, который затем подключается к оценочной карточке.PerformancePoint Filter MDX Query with or conditions
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 Profiler, и это то, что он заканчивает тем, как:
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() + ']')'? – whytheq
Да, данные верны, customdata - это просто имя пользователя, прошедшего проверку подлинности, в строке подключения – Aaron
hmmm. Я пойду домой, но завтра посмотрю на это. Потерянный след немного - в чем вопрос, который мы сейчас пытаемся ответить? – whytheq