這幾天用了一下Microsoft SQL Server 200的分析服務,就貼出來跟大家分享一下。
請多多指正。謝謝。
一、需求:
建立一個圖書訂單統計系統
1.統計各圖書館訂單數量。
2、統計各圖書館訂單的各個狀態的數量佔該圖書館的訂單數量的百分比。
3.同時統計原始數量及儲運數量二、資料表主要的欄位訂單ID
單位號(圖書館編號)
單位(圖書館名稱)
原始數量儲運數量最新狀態(該訂單目前狀態)
三、實現:
1、開啟Visual Studio 2005 新建項目,選擇Analysis Services項目,
選擇資料來源資料夾,新資料來源:
新建資料來源精靈啟動:
點選上圖新建出現連線配置對話框
配置方法和連結資料庫的配置方法相同。
配置連接資料來源的帳號,以後就是一路下一步:)
選擇資料來源視圖資料夾,新建一個資料來源視圖
選擇含有統計數據的表,以後就是一路下一步:)
選擇多維資料集資料夾,新建多維資料集也就是一個Cube
設定事實表和維度表
選擇度量值,也就是如果是SQL就是需要count,sum等要統計的數據
取消所有選項,然後選擇維度也就是SQL裡面GROUP by的欄位(這裡我選擇了「最新狀態」和「單位」)
選擇如上,這個不是最終結果,後面還要手工編輯。 ,以後就是一路下一步:)
透過瀏覽開啟編輯維度。
建立一個層次結構,單位在上,狀態在下。
把“圖書分銷訂單計數”重名名為“訂單數量”
修改後如上圖
切換到瀏覽器,拖曳單位到行位置。
再拖放最新狀態到行,最終效果如下。
拖放顯示的數據,也就是明細
拖放完畢效果
設定顯示為百分比
最終效果
開啟Microsoft SQL Server 2005 的SQL Server Management Studio連線到分析服務
新建查詢,查詢結果如圖查詢語句如下:
with
set [AllCount] as '[圖書分銷訂單].[層級結構].[單位].[安徽大學 圖書館].Children'
Member [圖書配送訂單].[層級結構].[單位].[安徽大學 圖書館].[合計] as 'aggregate([AllCount])'
Member [所佔訂單數百分比] as '[訂單數量]/([訂單數量],[圖書分銷訂單].[層次結構].[單位].[安徽大學圖書館].[合計])',format_string ='#.00%'
select {[Measures].[訂單數量],[Measures].[儲運數量],[Measures].[原始數量],[所佔訂單數百分比]} on columns,
{[圖書分銷訂單].[層級結構].[單位].[安徽大學 圖書館].Children} on rows
從 [圖書館統計]
其實也不是很難哦
有時間下次寫在ASP .NET 2.0裡面如何顯示查詢結果。