SQL Server 2008 MDX學(xué)習(xí)筆記之結(jié)果集Sets使用技巧
作者:邀月
本文我們主要介紹了SQL Server 2008 MDX學(xué)習(xí)筆記之結(jié)果集Sets使用技巧,是通過(guò)具體的實(shí)例來(lái)介紹的,希望本次的介紹能夠?qū)δ兴鶐椭?/div>
SQL Server 2008 MDX學(xué)習(xí)筆記之結(jié)果集Sets使用技巧是本文我們主要要介紹的內(nèi)容,接下來(lái)就讓我們從以下的幾個(gè)例子中區(qū)了解結(jié)果集Sets的使用技巧吧。
Sets的基本技巧
在Analysis Service中,Set代表元組(Tuples)的集合。在一個(gè)Set內(nèi)部,獨(dú)立的元組被用逗號(hào)隔開,如下:
- {
- ([Product].[Category].[Accessories]),
- ([Product].[Category].[Bikes]),
- ([Product].[Category].[Clothing]),
- ([Product].[Category].[Components])
- }
下面我們組裝一個(gè)基本的Sets
打開MDX查詢編輯器,如下:
例4-1
- SELECT
- {
- ([Date].[Calendar].[CY 2002], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2003], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2004], [Geography].[Country].[United States])
- } ON COLUMNS,
- {
- ([Product].[Category].[Accessories]),
- ([Product].[Category].[Bikes]),
- ([Product].[Category].[Clothing]),
- ([Product].[Category].[Components])
- } ON ROWS
- FROM [Step-by-Step];
我們?cè)黾右粋€(gè)元組([Product].[Subcategory].[Mountain Bikes]),如下:
例4-2
- SELECT
- {
- ([Date].[Calendar].[CY 2002], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2003], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2004], [Geography].[Country].[United States])
- } ON COLUMNS,
- {
- ([Product].[Category].[Accessories]),
- ([Product].[Category].[Bikes]),
- ([Product].[Category].[Clothing]),
- ([Product].[Category].[Components]),
- ([Product].[Subcategory].[Mountain Bikes])
- } ON ROWS
- FROM [Step-by-Step];
- /*
- Executing the query ...
- Members belong to different hierarchies in the function.
- 函數(shù)中指定的兩個(gè)集具有不同的維數(shù)。
- Execution complete
- */
我們使用相同維數(shù)的用戶層次結(jié)構(gòu)[Product Categories],修改如下:
例4-3
- SELECT
- {
- ([Date].[Calendar].[CY 2002], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2003], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2004], [Geography].[Country].[United States])
- } ON COLUMNS,
- {
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Bikes]),
- ([Product].[Product Categories].[Clothing]),
- ([Product].[Product Categories].[Components]),
- ([Product].[Product Categories].[Mountain Bikes])
- } ON ROWS
- FROM [Step-by-Step];
- /* CY 2002 CY 2003 CY 2004
- United States United States United States
- Accessories $61,263.90 $151,136.35 $76,027.18
- Bikes $14,716,804.14 $16,139,984.68 $7,951,335.55
- Clothing $317,939.41 $495,443.62 $197,590.92
- Components $2,526,542.06 $3,284,551.84 $1,137,105.72
- Mountain Bikes $6,970,418.73 $5,832,626.02 $2,539,198.92
- */
下面這個(gè)查詢有類似錯(cuò)誤:
例4-4
- SELECT
- {
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2002]),
- ([Date].[Calendar].[CY 2003], [Geography].[Country].[United States]),
- ([Date].[Calendar].[CY 2004], [Geography].[Country].[United States])
- } ON COLUMNS,
- {
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Bikes]),
- ([Product].[Product Categories].[Clothing]),
- ([Product].[Product Categories].[Components]),
- ([Product].[Product Categories].[Mountain Bikes])
- } ON ROWS
- FROM [Step-by-Step];
- /*
- Executing the query ...
- Query (2, 4) Two sets specified in the function have different dimensionality.
- 函數(shù)中指定的兩個(gè)集具有不同的維數(shù)。
- Execution complete
- */
正確應(yīng)為:
例4-5
- SELECT
- {
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2002]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2003]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2004])
- } ON COLUMNS,
- {
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Bikes]),
- ([Product].[Product Categories].[Clothing]),
- ([Product].[Product Categories].[Components]),
- ([Product].[Product Categories].[Mountain Bikes])
- } ON ROWS
- FROM [Step-by-Step];
我們可以這樣改變順序,并增加一個(gè)行:
例4-6
- SELECT
- {
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2004]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2003]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2002])
- } ON COLUMNS,
- {
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Bikes]),
- ([Product].[Product Categories].[Clothing]),
- ([Product].[Product Categories].[Components]),
- ([Product].[Product Categories].[Mountain Bikes])
- } ON ROWS
- FROM [Step-by-Step];
查詢結(jié)果如下:
- /* United States United States United States
- CY 2004 CY 2003 CY 2002
- Accessories $76,027.18 $151,136.35 $61,263.90
- Accessories $76,027.18 $151,136.35 $61,263.90
- Bikes $7,951,335.55 $16,139,984.68 $14,716,804.14
- Clothing $197,590.92 $495,443.62 $317,939.41
- Components $1,137,105.72 $3,284,551.84 $2,526,542.06
- Mountain Bikes $2,539,198.92 $5,832,626.02 $6,970,418.73
- */
多出的重復(fù)行怎么辦?我們可以使用distinct函數(shù)(http://msdn.microsoft.com/zh-cn/library/ms146033.aspx)
例4-6
- SELECT
- {
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2004]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2003]),
- ([Geography].[Country].[United States], [Date].[Calendar].[CY 2002])
- } ON COLUMNS,
- DISTINCT(
- {
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Accessories]),
- ([Product].[Product Categories].[Bikes]),
- ([Product].[Product Categories].[Clothing]),
- ([Product].[Product Categories].[Components]),
- ([Product].[Product Categories].[Mountain Bikes])
- }
- ) ON ROWS
- FROM [Step-by-Step];
- /* United States United States United States
- CY 2004 CY 2003 CY 2002
- Accessories $76,027.18 $151,136.35 $61,263.90
- Bikes $7,951,335.55 $16,139,984.68 $14,716,804.14
- Clothing $197,590.92 $495,443.62 $317,939.41
- Components $1,137,105.72 $3,284,551.84 $2,526,542.06
- Mountain Bikes $2,539,198.92 $5,832,626.02 $6,970,418.73
- */
關(guān)于SQL Server 2008 MDX學(xué)習(xí)筆記之結(jié)果集Sets使用技巧的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- SQL Server數(shù)據(jù)庫(kù)DataRelation的應(yīng)用示例詳解
- SQL Server 2008 MDX應(yīng)用之檢索集合中的元組
- SQL Server 2005/2008中的CTE應(yīng)用之遞歸查詢
- SQL Server 2008數(shù)據(jù)庫(kù)學(xué)習(xí)筆記之MDX查詢示例
- 淺析SQL Server數(shù)據(jù)庫(kù)SSIS導(dǎo)入IIS日志的簡(jiǎn)單步驟
責(zé)任編輯:趙鵬
來(lái)源:
博客園


相關(guān)推薦




