私は次の問題を抱えています:
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という名前の階層があります。最低レベルは貿易です。
デスク:-Total -Segment -BusinessArea -Department -4th Level Portfolio -Desk -Trade
以下に示すクエリで、メジャー "PerformanceTotalYtd"!= NULLの2012/01/10の日付の取引を除き、メジャー "PerformanceTotalYtd"!=NULLのすべての取引を表示したいと思います。 01/09!
例:
2012/01/10のMeasurePerformanceTotalYtdとの取引:
ABC 12,99
DEF 3,22
GHI 55,60
2012/01/09のMeasurePerformanceTotalYtdとの取引:
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
誰か助けてくれませんか?解決策が見つかりません。
私の悪い英語でごめんなさい!
アレックス