2011-08-17 88 views
0

通過下面的MDX查詢,我試圖返回銷售數據的比較。MDX查詢:如何比較當年的年度數據與上一年的數據?

我想LYTD比較年初至今,定義如下:

YTD:01一月今年(01 /月/ 2011)直到今天(17/8/2011)

LYTD:01月去年(2010年1月1日)直到去年(2010年1月17日/ 8月)

這兩個期間應該包含相同的天數(閏年給予或需要一天)。

到目前爲止,我已經嘗試過使用YTD()函數來獲得今年的數據,但是我還沒有將YTD()函數包裝到某個東西中取得很大的成功,以使它返回去年的相同日期。我已經採用LAG(1)和ParallelPeriod(見下面的兩個例子):

WITH 
MEMBER [Measures].[Sales YTD] AS 
    'SUM(YTD(),[Measures].[Sales])' 
MEMBER [Measures].[Sales LYTD] AS 
    'SUM((YTD(),[Measures].[Sales]).LAG(1))' 
SELECT 
    {[Sales YTD], [Sales LYTD]} ON COLUMNS 
    ... 

或者

WITH 
MEMBER [Measures].[Sales YTD] AS 
    'SUM(YTD(),[Measures].[Sales])' 
MEMBER [Measures].[Sales LYTD] AS 
    'SUM(ParallelPeriod(YTD(),1),[Measures].[Sales])' 
SELECT 
    {[Sales YTD], [Sales LYTD]} ON COLUMNS 
    ... 

由此產生的數據使用或者ParallelPeriod時或LAG總是返回空值的去年的銷售額列:

Customer Sales YTD Sales LYTD 
ABC Screws  $1024  (Null) 
ABC Bolts  $2392  (Null) 
ABC Nuts  $3735  (Null) 

任何人都可以提出修改意見,以將返回正確的數據,或者是提供一種替代策略,以使用LAG或ParallelPeriod查詢?

回答

0

使用類似的東西:。

WITH 
     MEMBER [Measures].[Sales YTD] AS 
      'SUM(YTD(closingperiod([Date].[Calendar].[Date])),[Measures].[Sales])' 
     MEMBER [Measures].[Sales LYTD] AS 
      'SUM(YTD(PARALLELPERIOD([Date].[Calendar].[Calendar Year],1,closingperiod([Date].[Calendar].[Date]))),[Measures].[Sales])' 
     SELECT 
      {[Measures].[Sales YTD],[Measures].[Sales LYTD]} ON COLUMNS 
     ... 

,其中

  • [日期] [日曆] [日期] - 水平 「節」 在你的日期層面;
  • closingperiod([Date]。[Calendar]。[Date]) - 此級別的最後一名成員「Day」(17/Aug/2011);
  • [Date]。[日曆]。[日曆年] - 日期維度中的級別「年」;
  • PARALLELPERIOD([Date]。[Calendar]。[Calendar Year],1,closingperiod([Date]。[Calendar]。[Date])) - 17/Aug/2010。
0

不久發佈的問題和進一步的實驗後,下列建設似乎回到我一直在尋找的結果:

WITH 
MEMBER [Measures].[Sales YTD] AS 
    'SUM(YTD(),[Measures].[Sales])' 
MEMBER [Measures].[Sales LYTD] AS 
    'SUM(YTD(ParallelPeriod([Time].[Year],1,[Time].CURRENTMEMBER)),[Measures].[Sales])' 
SELECT 
    {[Sales YTD], [Sales LYTD]} ON COLUMNS 
    ... 

我會公佈我的答案昨天晚上,但用戶不足100點必須等待8個小時才能回答自己的問題。

@Max感謝您的意見,看起來像您有同樣的想法。因此,即使我正在使用我自己的實施方案,您也會得到接受的答案。

相關問題