OLAP - уровни имеют одинаковое имя - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть следующая иерархия:

 <Dimension name="Locations">
<Hierarchy hasAll="true" allMemberName="All Locations" primaryKey="loc1Id"  uniqueKeyLevelName="loc1Id">
  <Table name="OLAP_Budget"/>
  <Level name="location1" column="location1" uniqueMembers="true"/>
  <Level name="location2" column="location2" uniqueMembers="true"  hideMemberIf="IfBlankName"/>
  <Level name="location3" column="location3" uniqueMembers="true"  hideMemberIf="IfBlankName"/>
</Hierarchy>

Проблема:

"location1" - это выход через разные финансовые годы, и в каждом финансовом году у них разные дети.,Я отобразил измерение «fiscalYear» в столбце, но когда я решил отобразить значения определенного fiscalYear, он отобразил всех дочерних элементов в целом за fiscalYears.

Как решить эту проблему?

Заранее спасибо

1 Ответ

0 голосов
/ 03 октября 2011

Ну, SSAS не знает, какова связь между годами и местоположениями, и не должна этого знать. Как правило, у вас есть данные для некоторых комбинаций, и единственный способ (кроме размещения года и местоположения в одном измерении и построения определенной пользователем иерархии, что я бы не советовал, поскольку это звучит неправильно) состоит в том, чтобы написать запрос с НЕ ПУСТО. Например:

SELECT
{
    [Measures].[Some Measure]*
    [Date].[Calendar].[Year].&[2011]

} ON 0,
{
    [Location].[Location 1].Members
} ON 1
FROM [Some Cube]

показывает все местоположения в строках, независимо от того, имеют ли они данные против них или нет. Однако, если вы измените его на:

SELECT
{
    [Measures].[Some Measure]*
    [Date].[Calendar].[Year].&[2011]

} ON 0,
NON EMPTY {
    [Location].[Location 1].Members
} ON 1
FROM [Some Cube]

Затем вы получите местоположения с данными в 2011 году. Таким образом, вы можете получить желаемый результат.

...