2017-01-25 8 views
0

Я работаю с данными в настройке OLAP-куба. Я хочу показать все математические студенческие группы с отдельным количеством студентов для каждой группы. Студенты попадают в группу Math, основываясь на том, как они набрали на экзамене по математике. Они также помещаются в каждую математическую группу ниже той, в которую они помещаются. (помещается в Math 106, также является членом Math 105, 104, 103, 102, 101 и 100). В настоящее время я могу показать только группы Math в своих рядах и Distinct Students в качестве меры на столбцах. Показатели, отображаемые только для каждой строки, а не для всего отчета. Так Math 100 группа отображает количество всех студентов в математике групп, а не только Math 100.Истинно Идент. Иерархия (MDX)

WITH 
/*- Qv6.0.3431.1887 -*/ 

SELECT 
NON EMPTY 
{ 
DISTINCT ({ [Measures].[Distinct Students] }) 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON COLUMNS, 
NON EMPTY 
{ 
    { [Student].[Student].[All Students] } 
    * { { { DISTINCT(
{ { FILTER(
{ { FILTER(
{ DESCENDANTS([Student Group].[Student Group].[All Student Groups] ,  [Student Group].[Student Group].[Student Group]) } , InStr(1,IIF(ISERROR( [Student Group].[Student Group].CURRENTMEMBER.MEMBER_CAPTION),"", [Student Group].[Student Group].CURRENTMEMBER.MEMBER_CAPTION) , "Math") <> 0 
) } 
} , InStr(1,IIF(ISERROR([Student Group].[Student  Group].CURRENTMEMBER.MEMBER_CAPTION),"", [Student Group].[Student  Group].CURRENTMEMBER.MEMBER_CAPTION) , "eligible") <> 0 
) } 
}) } 
} } 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON ROWS 

FROM [Student Term] 
WHERE ([Terms].[Terms].[Term].&[138]) 
CELL PROPERTIES FORMATTED_VALUE, VALUE, FONT_NAME 

Вот скриншот выхода: Math Groups Student counts

Я попытался найти все здесь, но было не удалось найти что-либо, чтобы помочь. Я никоим образом не разбираюсь в MDX, инструмент отчетности, который мы используем, создает его на основе того, какие элементы мы выбираем в построителе отчетов (в большинстве случаев перетаскивание). Инструмент позволяет создавать пользовательские меры и элементы с помощью MDX. Я действительно ценю всю помощь и, пожалуйста, дайте мне знать, нужна ли дополнительная информация.

Спасибо!

==== ОБНОВЛЕНИЕ 1-FEB-2017 ======= спасибо за ваш ответ. Наконец, я снова работаю над этим. Я создал пользовательские меры в нашем интерфейсном инструменте на основе вашего кода. Я изменил [Measures]. [StudentsCount] на [Measures]. [Distinct Students], чтобы соответствовать доступной мере. Если я выберу пользовательскую меру «StudentsCountDC» и запустим отчет, он ничего не вернет. Если я выберу индивидуальную меру «IsStudentsTop», подсчеты, которые он возвращает, очень велики, как если бы он не выполнялся для выбранного термина. Вот новый MDX, который был сгенерирован после того, как я запустил отчет с недавно созданной пользовательской мерой «StudentsCountDC».

WITH 
/*- Qv6.0.3431.1887 -*/ 

SELECT 
NON EMPTY 
{ 
DISTINCT ({ [Measures].[#~~2d0c2a98-fed9-4797-a573-170d3e450e4c~~#] }) 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON COLUMNS, 
NON EMPTY 
{ 
    { [Student].[Student].[All Students] } 
    * { [#~~9faf06d9-a022-493d-9dfd-dadd55793c37~~#] } 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON ROWS 

FROM [Student Term] 
WHERE ([Terms].[Terms].[Term].&[136]) 
CELL PROPERTIES FORMATTED_VALUE, VALUE, FONT_NAME 

скриншоты новых мер: снова IsStudentsTop & StudentsCountDC measures Спасибо за вашу помощь!

ответ

0

Это немного сложно, я лично еще не проверял его. Надеюсь, вы получите точку:

with 

Member [Measures].[StudentsCountDC] as 
SUM(
    [Student].[Student].[Student].Members, 
    IIF(
     not [Measures].[IsStudentsTop] 
     and 
     [Measures].[StudentsCount], 
     1, 
     NULL 
    ) 
) 

Member [Measures].[IsStudentsTop] as 
SUM(
    {[Student Group].[Student Group].PrevMember:NULL}, 
    [Measures].[StudentsCount] 
) 

IsStudentsTop проверяет, существует ли StudentsCount в верхних группах (по заказу атрибуте). StudentsCountDC проверяет, имеет ли текущий ученик IsStudentsTop и StudentsCount не пуст, а затем возвращает 1 для каждого ученика, а еще возвращает Null.

+0

Я обновил свое оригинальное сообщение, так как в разделе комментариев не было достаточного количества символов. благодаря! –

+0

Что такое [Measures]. [# ~~ 2d0c2a98-fed9-4797-a573-170d3e450e4c ~~ #]? Вы должны установить [Measures]. [IsStudentsTop]. Не могли бы вы также опубликовать свой результат, если он есть? –

+0

Извините, [Measures]. [# ~~ 2d0c2a98-fed9-4797-a573-170d3e450e4c ~~ #] - это обычная мера, которую я создал «StudentsCountDC». Инструмент отчетности, который я использую, не отображает имена настраиваемых элементов, созданных в интерфейсе. [вывод IsStudentsTop] (http://imgur.com/a/ehNmE) цифры слишком высоки, как будто они игнорируют конкретный термин и подсчитывают всех студентов, которые когда-либо посещали колледж. Благодаря! –