2013-07-18 57 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