У меня есть следующая проблема:
Select
{
[Measures].[PerformanceTotalYtd]
} on columns,
Non Empty{
Except(([Desk].[DeskName].[Trade].Members,[Time].[Year-Month-Day].[Day].&[2012]&[1]&[10]),([Desk].[DeskName].[Trade].Members,[Time].[Year-Month-Day].[Day].&[2012]&[1]&[09]))
} on rows
from [Cube]
where ([Entity].[Entity].&[9], [Audience].[View].&[GOD])
Существует измерение с таблицей имен. Это измерение имеет иерархию с именем DeskName. Самый низкий уровень - это торговля.
Письменный стол: -Общий -Сегмент -БизнесАреа -Департамент -Портфолио 4-го уровня -Деск -Трейд
С помощью запроса, показанного ниже, я хочу показать все сделки, имеющие меру "PerformanceTotalYtd"! = NULL на дату 2012/01/10, за исключением сделок с мерой "PerformanceTotalYtd"! = NULL на дату 2012/01/09!
Пример:
Сделки с показателями PerformanceTotalYtd на 2012/01/10:
ABC 12,99
DEF 3,22
GHI 55,60
Сделки с показателями PerformanceTotalYtd на 2012/01/09:
ABC 80,00
DEF 8,78
Я хочу получить следующий Результат, потому что торговля "GHI" не существует на 2012/01/09 и является новой:
GHI 55,60
Мой запрос, показанный ниже, имеет такой результат:
ABC 12,99
DEF 3,22
GHI 55,60
Не удаляет существующие Сделки из 2012/01/09.
У меня есть решение в SQL, но я хочу сделать его в MDX:
SELECT DD.Code, Sum(PerformanceTotalYtd) as TOTAL
FROM [Reporting_DB].[Star].[Fact_PerformanceTotal] FIS
inner join Star.Dimension_Desk DD on FIS.DeskID = DD.DeskID
WHERE FIS.TimeID = 20120110 and FIS.EntityID = 9 AND DD.Code not in ( SELECT DD.Code
FROM [Reporting_DB_HRE].[Star].[Fact_PerformanceTotal] FIS inner join Star.Dimension_Desk DD on FIS.DeskID = DD.DeskID WHERE FIS.TimeID = 20120109 and FIS.EntityID = 9 group by DD.Code)group by DD.Code
Кто-нибудь может мне помочь, пожалуйста? Я не могу найти решение.
Извините за мой плохой английский!
Alex