1. 程式人生 > >MDX常用幾種查詢對比

MDX常用幾種查詢對比

view reg 架構 aggregate nbsp member mon lap sed

MDX1:

技術分享圖片
SELECT 
NON EMPTY {Hierarchize(
                {
                [Measures].[年初數 的總和], [Measures].[期末數 的總和], [Measures].[本期發生數 的總和]} 
                    )
          }
    ON COLUMNS,

    NON EMPTY {Hierarchize(
{
    CROSSJOIN({[年月表].[時間].[]}
                ,CROSSJOIN({[年月表
].[月份].[月份]} ,CROSSJOIN( {[組織架構表].[組織編碼].[組織編碼]}, CROSSJOIN({[組織架構表].[組織名稱].[組織名稱]} ,CROSSJOIN({[賬簿表].[賬簿名稱].[賬簿名稱]} ,CROSSJOIN({[損益視圖].[項目名稱].[
項目名稱]} ,{[資產負債視圖].[資產項目].[資產項目]}) ) ) ) ) ) } ) } ON ROWS FROM [FinBPCube]
View Code

效果:

技術分享圖片

MDX2:

技術分享圖片
SELECT 
NON EMPTY {Hierarchize(
                
                {
                CROSSJOIN( [年月表].[時間].[]    ,
                {[年月表].[月份].[月份]} )
                
                    
                }
                    )
          }
    ON COLUMNS,

    NON EMPTY {Hierarchize(
{
    
                    CROSSJOIN( {[組織架構表].[組織編碼].[組織編碼]}, 
                                    CROSSJOIN({[組織架構表].[組織名稱].[組織名稱]}
                                                ,CROSSJOIN({[賬簿表].[賬簿名稱].[賬簿名稱]}
                                                ,CROSSJOIN({[損益視圖].[項目名稱].[項目名稱]} ,{[資產負債視圖].[資產項目].[資產項目]})
                                                            )
                                                ) 
                                )
                

}
    )
          }
 ON ROWS
FROM [FinBPCube]
where (
[Measures].[本期發生數 的總和]) 
View Code

效果:

技術分享圖片

MDX3:

技術分享圖片
WITH

SET MonArray AS {[年月表].[月份].[月份]} 

MEMBER [年月表].[月份].[月匯總] AS
AGGREGATE(MonArray)

SELECT 
NON EMPTY {Hierarchize(
                
                {
                
                {MonArray,[年月表].[月份].[月匯總]} 
                
                    
                }
                    )
          }
    ON COLUMNS,

    NON EMPTY {Hierarchize(
{
    
                    CROSSJOIN( {[組織架構表].[組織編碼].[組織編碼]}, 
                                    CROSSJOIN({[組織架構表].[組織名稱].[組織名稱]}
                                                ,CROSSJOIN({[賬簿表].[賬簿名稱].[賬簿名稱]}
                                                ,CROSSJOIN({[損益視圖].[項目名稱].[項目名稱]} ,{[資產負債視圖].[資產項目].[資產項目]})
                                                            )
                                                ) 
                                )
                

}
    )
          }
 ON ROWS
FROM [FinBPCube]
where (
[Measures].[本期發生數 的總和]) 
View Code

技術分享圖片

但是註意:

技術分享圖片

MDX常用幾種查詢對比