這幾天用了一下Microsoft SQL Server 200的分析服務(wù),貼出來(lái)給大家分享一下。
請(qǐng)多多指正。謝謝。
一、需求:
建立一個(gè)圖書(shū)訂單統(tǒng)計(jì)系統(tǒng)
1、統(tǒng)計(jì)各個(gè)圖書(shū)館訂單數(shù)量。
2、統(tǒng)計(jì)各個(gè)圖書(shū)館訂單的各個(gè)狀態(tài)的數(shù)量占該圖書(shū)館的訂單數(shù)量的百分比。
3、同時(shí)統(tǒng)計(jì)原始數(shù)量和儲(chǔ)運(yùn)數(shù)量
二、數(shù)據(jù)表
主要的字段
訂單ID
單位號(hào)(圖書(shū)館編號(hào))
單位(圖書(shū)館名稱)
原始數(shù)量
儲(chǔ)運(yùn)數(shù)量
最新?tīng)顟B(tài)(該訂單當(dāng)前狀態(tài))
三、實(shí)現(xiàn):
1、打開(kāi)Visual Studio 2005 新建項(xiàng)目,選擇Analysis Services項(xiàng)目,
選擇數(shù)據(jù)源文件夾,新建數(shù)據(jù)源:
新建數(shù)據(jù)源向?qū)?dòng):
點(diǎn)擊上圖新建出現(xiàn)連接配置對(duì)話框
配置方法和鏈接數(shù)據(jù)庫(kù)的配置方法相同。
配置連接數(shù)據(jù)源的帳號(hào),以后就是一路下一步:)
選擇數(shù)據(jù)源視圖文件夾,新建一個(gè)數(shù)據(jù)源視圖
選擇含有統(tǒng)計(jì)數(shù)據(jù)的表,以后就是一路下一步:)
選擇多維數(shù)據(jù)集文件夾,新建多維數(shù)據(jù)集也就是一個(gè)Cube
設(shè)置事實(shí)表和維度表
選擇度量值,也就是如果是SQL就是需要count,sum等要統(tǒng)計(jì)的數(shù)據(jù)
  取消所有選項(xiàng),然后選擇維度也就是SQL里面GROUP by的字段(這里我選擇了“最新?tīng)顟B(tài)”和“單位”)
選擇如上,這個(gè)不是最終結(jié)果,后面還要手工編輯。,以后就是一路下一步:)
 通過(guò)瀏覽打開(kāi)編輯維度。
建立一個(gè)層次結(jié)構(gòu),單位在上,狀態(tài)在下。

把“圖書(shū)分銷 訂單 計(jì)數(shù)”重名名為“訂單數(shù)量”

修改后如上圖
切換到瀏覽器,拖放單位到行位置。
再拖放最新?tīng)顟B(tài)到行,最終效果如下。
拖放顯示的數(shù)據(jù),也就是明細(xì)

拖放完畢效果
設(shè)置顯示為百分比
最終效果
打開(kāi)Microsoft SQL Server 2005 的SQL Server Management Studio連接到分析服務(wù)
新建查詢,查詢結(jié)果如圖
查詢語(yǔ)句如下:
with 
set [AllCount] as '[圖書(shū)分銷 訂單].[層次結(jié)構(gòu)].[單位].[安徽大學(xué)     圖書(shū)館].Children'
Member [圖書(shū)分銷 訂單].[層次結(jié)構(gòu)].[單位].[安徽大學(xué)     圖書(shū)館].[合計(jì)] as 'aggregate([AllCount])'
Member [所占訂單數(shù)百分比] as '[訂單數(shù)量]/([訂單數(shù)量],[圖書(shū)分銷 訂單].[層次結(jié)構(gòu)].[單位].[安徽大學(xué)     圖書(shū)館].[合計(jì)])',format_string='#.00%'
select {[Measures].[訂單數(shù)量],[Measures].[儲(chǔ)運(yùn)數(shù)量],[Measures].[原始數(shù)量],[所占訂單數(shù)百分比]} on columns,
{[圖書(shū)分銷 訂單].[層次結(jié)構(gòu)].[單位].[安徽大學(xué)     圖書(shū)館].Children} on rows
from [圖書(shū)館統(tǒng)計(jì)]
其實(shí)也不是很難哦
有時(shí)間下次寫(xiě)在 asp .NET 2.0里面如何顯示查詢結(jié)果。
新聞熱點(diǎn)
疑難解答
圖片精選