2016-03-22 5 views
1

У меня есть существующая таблица фактов, и мне нужно моделировать куб OLAP с использованием схемы Mondrian.
Факт таблица имеет несколько столбцов с первичным ключом размерности таблицы, но незадачливо есть строка с размерностью значением «0» с конвенцией «все»Как настроить размер для игнорирования определенного значения

примера только одно измерение: student_id:

| student_id |  exams 
+------------+------------- 
|   0 |   23 
|  20131 |   15 
|  20168 |   2 
|  20468 |   6 

студент стол

id | name 
-------+----------- 
20131 | John 
20168 | Daid 
20468 | Peter 
20629 | Paul 
22344 | Micheal 

Моя схема является:

<Schema name="students"> 
    <Dimension type="StandardDimension" visible="true" name="StudentDimension"> 
    <Hierarchy name="Student" visible="true" hasAll="true" primaryKey="id"> 
     <Table name="student" schema="public" alias="" /> 
     <Level name="Nome" visible="true" column="name" type="String" uniqueMembers="false" levelType="Regular" /> 
    </Hierarchy> 
    </Dimension> 
    <Cube name="studentCube" visible="true" cache="true" enabled="true"> 
    <Table name="students_cube" schema="public" /> 
    <DimensionUsage source="StudentDimension" name="StudentUsage" visible="true" foreignKey="student_id" /> 
    <Measure name="Exams" column="exams" datatype="Numeric" aggregator="sum" visible="true" /> 
    </Cube> 
</Schema> 

Моя проблема заключается в том, что выполнение запроса:

SELECT 
    {[Measures].[Exams]} ON COLUMNS, 
    {[StudentUsage.Student].[All StudentUsage.Student]} ON ROWS 
FROM [studentCube] 

У меня есть результат «46»: сумма всех экзаменов, включенных в ряд с student_id = 0.

Я хотел бы, чтобы исключить в схема мер, связанных с измерениями со значением «0». Является ли это возможным?

ответ

1

Вы можете попробовать это:

SELECT 
    {[Measures].[Exams]} ON COLUMNS, 
    { 
    [StudentUsage.Student].[All StudentUsage.Student] - 
    [StudentUsage.Student].[All StudentUsage.Student].&[0] 
    } ON ROWS 
FROM [studentCube] 

Или попробуйте:

SELECT 
    {[Measures].[Exams]} ON COLUMNS, 
    EXCEPT 
     (
     [StudentUsage.Student].[All StudentUsage.Student] , 
     [StudentUsage.Student].[All StudentUsage.Student].&[0] 
     ) ON ROWS 
FROM [studentCube] 
+0

Я получаю эту ошибку:.. «Объект MDX«[StudentUsage.Student] [Все StudentUsage.Student] и [0 ] 'не найден в кубе' studentCube '' – gascani

+0

Что такое полное имя участника этого члена .. "есть строка с размером" 0 "с условным обозначением" all "? – SouravA