这几天用了一下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
from [图书馆统计]
其实也不是很难哦
有时间下次写在 ASP .NET 2.0里面如何显示查询结果。