Перекрестное объединение столбцов с одинаковой иерархией
У меня есть куб данных SQL со следующей иерархией
Я хочу пересечь присоединиться к складскому отделу и коду склада Desc. Я написал MDX следующим образом
SELECT NON EMPTY
{ [Measures].[Total Value]}
DIMENSION PROPERTIES CHILDREN_CARDINALITY,
PARENT_UNIQUE_NAME ON COLUMNS,
NON EMPTY
{
[Combined].[Drill Down Path 4].[Warehouse Division].MEMBERS* [Combined].[Drill Down Path 4].[Code Warehouse Desc].MEMBERS
}
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM [InventoryAge]
WHERE ( [Calendar].[Report Days].[All Members].&[All].&[WantInReport].& [2].&[20141031] )
Это дает мне ошибку следующим образом
Query (13, 8) The Drill Down Path 4 hierarchy is used more than once in the Crossjoin function.
Может ли какой-либо орган предложить лучший способ сделать это
Пожалуйста, найдите иерархию календарей
2 ответа
Вам не нужно пересекать иерархию (это невозможно), чтобы делать то, что вам нужно. Просто запросите самый низкий уровень, вы также получите все родители
SELECT NON EMPTY
{ [Measures].[Total Value]}
DIMENSION PROPERTIES CHILDREN_CARDINALITY,
PARENT_UNIQUE_NAME ON COLUMNS,
NON EMPTY
{
[Combined].[Drill Down Path 4].[Code Warehouse Desc].allMEMBERS
}
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM [InventoryAge]
WHERE ( [Calendar].[Report Days].[All Members].&[All].&[WantInReport].& [2].&[20141031] )
PS. Возможно, вы не сможете увидеть их в средстве просмотра результатов запросов SSMS, но они появятся, если вы используете запрос в браузере кубов или как набор данных в SSRS/ другом инструменте
Вы можете передать последнюю дату в вашем наборе, используя Tail(Существующий [Календарь]. [Дни отчета]. [Все участники].&[Все].&[WantInReport].members, 1).item(0)
Или вы можете использовать Format(Now()), который дает вам строковое представление текущей системной даты. Однако это зависит от локали, поэтому вам, вероятно, нужно удалить точки / косые черты. Смотрите здесь