Вычисляемый элемент как существующая мера, отфильтрованная как кортежем, так и множеством
Я хочу создать вычисляемый элемент с помощью служб аналитики инструментов данных SQL Server в кубе OLAP, который сочетает в себе следующие подходы фильтрации:
Кортеж
(
[Enrolment Planning Actuals].[Year].&[1],
[Enrolment Planning Actuals].[Attribute 1].&[Y],
[Enrolment Planning Actuals].[Attribute 2].&[N],
[Enrolment Planning Actuals].[Attribute 3].&[N],
[Measures].[Count]
)
Установить в качестве одного члена
SUM(
EXCEPT(
[Enrolment Planning Actuals].[Year].[Year],
{
[Enrolment Planning Actuals].[Year].&[1]
}
),
[Measures].[Count]
)
[Enrolment Planning Actuals].[Year]
имеет члены значений 1, 2, 3, 4, и я, по сути, хочу, чтобы вычисляемый член предоставлял [Measures].[Count]
фильтруется на:
- Включить все
[Enrolment Planning Actuals].[Year]
Члены, КРОМЕ[Enrolment Planning Actuals].[Year].&[1]
[Enrolment Planning Actuals].[Attribute 1].&[Y]
[Enrolment Planning Actuals].[Attribute 2].&[N]
[Enrolment Planning Actuals].[Attribute 3].&[N]
Я узнаю SUM
Функция может быть неправильным подходом при попытке объединить эти фильтры.
До этого момента я нашел, что принятый ответ на статью Фильтр вычисляемых элементов MDX по атрибуту измерения исключительно полезен.
Возможно, что в этом мышлении что-то не так. Открыта для предложения, спасибо.
2 ответа
Вы почти там, приятель.
Просто распространяясь на концепцию set
а также tuple
и добавив концепцию crossjoin
или же *
вот что должно работать:
WITH MEMBER Measures.YourCalculatedMember AS
SUM(
EXCEPT(
[Enrolment Planning Actuals].[Year].[Year],
{
[Enrolment Planning Actuals].[Year].&[1]
}
) *
[Enrolment Planning Actuals].[Attribute 1].&[Y] *
[Enrolment Planning Actuals].[Attribute 2].&[N] *
[Enrolment Planning Actuals].[Attribute 3].&[N]
,
[Measures].[Count]
)
Я думаю, что вы могли бы просто отбросить меру и создать элемент в одной из иерархий атрибутов. Тогда вы можете использовать различные меры против этого:
WITH MEMBER [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember] AS
SUM(
EXCEPT(
[Enrolment Planning Actuals].[Year].[Year],
{
[Enrolment Planning Actuals].[Year].&[1]
}
) *
[Enrolment Planning Actuals].[Attribute 1].&[Y] *
[Enrolment Planning Actuals].[Attribute 2].&[N] *
[Enrolment Planning Actuals].[Attribute 3].&[N]
)
SELECT
{
[Measures].[Count],
[Measures].[Revenue]
} on 0,
{
[Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember],
[Enrolment Planning Actuals].[Attribute 1].&[Y]
} on 1
FROM [YourCube];