2013-07-18 132 views
5

我對SSAS和MDX非常陌生,並試圖瞭解它的概念。我需要幫助。選擇語句的特定列總和

我有預訂的事實表,我想獲得特定預訂年份和出發年份的市場乘客人數,以及每個出發年份我想要一個總列數。但無法弄清楚如何將這些列聚合爲一個。

這裏是我的代碼現在:

SELECT { 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2012],[Book Date].[Calendar Year].&[2011])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2012],[Book Date].[Calendar Year].&[2012])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2013],[Book Date].[Calendar Year].&[2012])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2013],[Book Date].[Calendar Year].&[2013])) 
     } 
     ON 0, 
NON EMPTY [Fact Lead Pax Report].[Mc Major].MEMBERS 
ON 1 
FROM [Lead Pax Report] 
WHERE { [Fact Lead Pax Report].[Res Status].&[A] } 

而且下面就我的成績表,我想補充的總列,其中黃色標記是:

有關添加

http://i.stack.imgur.com/5SNAk.png

回答

4

什麼另一列用於統計特定年份的所有離開時間?

例如:

WITH SET [ESC TOURS BY MARKET] AS 
Filter( 
    [Fact Lead Pax Report].[Mc Major].[Mc Major], 
    ([Fact Lead Pax Report].[Mc Major].currentMember.name <> 'AIR') AND ([Fact Lead Pax Report].[Mc Major].currentMember.name <> 'DEFAULT') 
) 
SELECT { 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2012],[Book Date].[Calendar Year].&[2011])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2012],[Book Date].[Calendar Year].&[2012])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2012],[Book Date].[Calendar Year])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2013],[Book Date].[Calendar Year].&[2012])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2013],[Book Date].[Calendar Year].&[2013])), 
      (CROSSJOIN([Dep Date].[Calendar Year].&[2013],[Book Date].[Calendar Year])) 
     } 
     ON 0, 
[ESC TOURS BY MARKET] 
ON 1 
FROM [Lead Pax Report] 
WHERE { [Fact Lead Pax Report].[Res Status].&[A] } 
+0

感謝您的回答,但是這將計算所有預訂年。如果我在2009年或2010年預訂更多,總計將包括所有這些年份。 – Maor