<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_邀月工作室</title><subtitle type="text">年轻的时候，多走走，走不动的时候，静下来写回忆录。3w@live.cn</subtitle><id>http://feed.cnblogs.com/blog/u/22045/rss</id><updated>2012-01-11T00:05:31Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/22045/rss"/><entry><id>http://www.cnblogs.com/downmoon/archive/2011/12/08/2280313.html</id><title type="text">邀月的一些其他随笔索引</title><summary type="text">除了SQL Server 2008及BI之外，邀月的一些其随笔索引。</summary><published>2011-12-08T02:16:00Z</published><updated>2011-12-08T02:16:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/12/08/2280313.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/12/08/2280313.html"/><content type="html">&lt;p&gt;&lt;strong&gt;程序物语：&lt;/strong&gt;一些随机的感悟。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_22"  href="http://www.cnblogs.com/downmoon/archive/2009/09/24/1573438.html"&gt;程序物语(一）：必须做什么&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_21"  href="http://www.cnblogs.com/downmoon/archive/2009/10/12/1582018.html"&gt;程序物语(二）：起手式&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_18"  href="http://www.cnblogs.com/downmoon/archive/2009/12/02/1615094.html"&gt;程序物语(三):做人、做事、生活&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_14"  href="http://www.cnblogs.com/downmoon/archive/2009/12/18/1626872.html"&gt;程序物语(四):苹果是如何落到牛顿头上的？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2009/12/31/1637105.html"&gt;程序物语(五):经营自己的程序生涯&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_12"  href="http://www.cnblogs.com/downmoon/archive/2010/01/20/1652045.html"&gt;程序物语(六):探寻你的与众不同之处&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_11"  href="http://www.cnblogs.com/downmoon/archive/2010/01/27/1657675.html"&gt;程序物语(七):项目经理预成长&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_10"  href="http://www.cnblogs.com/downmoon/archive/2010/01/29/1659124.html"&gt;程序物语(八):我心戚戚&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_9"  href="http://www.cnblogs.com/downmoon/archive/2010/02/06/1664818.html"&gt;程序物语(九):解读你的生存法则&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2010/06/25/1765046.html"&gt;程序物语（十）守望内心的宁静&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;一些生活点滴积累&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2009/12/29/1634738.html"&gt;乔致庸毕生的三大项目之一：包头高粱霸盘&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2010/01/07/1641129.html"&gt;乔致庸毕生的三大项目之二：疏通南北茶路&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2010/01/17/1650097.html"&gt;乔致庸毕生的三大项目之三：汇通天下、货通天下&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_11"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019910.html"&gt;3月25日,难忘的日子--浙大ME拓展有感&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_16"  href="http://www.cnblogs.com/downmoon/archive/2009/12/16/1625592.html"&gt;一个项目经理眼中的《2012》&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_21"  href="http://www.cnblogs.com/downmoon/archive/2009/10/29/1591814.html"&gt;一篇男人必看的雄文&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_25"  href="http://www.cnblogs.com/downmoon/archive/2009/08/31/1557370.html"&gt;女人真正想要的是什么？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2010/11/11/1874970.html"&gt;《活法》中一个故事－－令托尔斯泰也折服的人性寓言&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;UML相关笔记&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_11"  href="http://www.cnblogs.com/downmoon/archive/2009/02/05/1384958.html"&gt;RUP的十大要素&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2009/06/06/1497428.html"&gt;《UML用户指南第二版》再次温读笔记（一）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2009/02/18/1393047.html"&gt;UML建模的要点总结(一）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_6"  href="http://www.cnblogs.com/downmoon/archive/2009/06/11/1501366.html"&gt;UML常见工具之NetBeans&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2009/07/28/1533095.html"&gt;UML常见工具之Powerdesigner&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2009/12/02/1615642.html"&gt;UML常用工具之三--RSA&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2011/03/03/1970205.html"&gt;Power designer 15生成sql server 2005/2008列注释&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/03/04/1971250.html"&gt;powerdesigner逆向工程生成PDM时的列注释解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/05/21/2053135.html"&gt;powerdesigner逆向工程生成PDM时的列注释解决方案的补充&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Web通信&lt;/strong&gt;：&lt;br /&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2010/03/12/1684716.html"&gt;.net调用web Service时集合序列化的解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2010/08/24/1807161.html"&gt;Java与WCF交互（一)：Java客户端调用WCF服务&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2010/08/25/1807982.html"&gt;Java与WCF交互（二)：WCF客户端调用Java web service&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2010/08/29/1811689.html"&gt;Java与WCF交互（一)补充：用WSImport生成WSDL的Java客户端代码&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2007/12/30/1021138.html"&gt;利用SoapHeader验证web service调用的合法性&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2010/09/02/1815876.html"&gt;Trace.axd--asp.net调试的新境界&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Windows服务&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019924.html"&gt;C#制作Windows service服务系列一：制作一个可安装、可启动、可停止、可卸载的Windows service&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2009/09/16/1567643.html"&gt;C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试（windows service）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2009/11/05/1596751.html"&gt;C#制作Windows service服务系列三--制作可控制界面的windows服务(windows service)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Java/JDBC&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2010/08/31/1814146.html"&gt;《Java是如何快速煮成C#的？》（一）：相似的方法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2010/09/14/1826260.html"&gt;《Java是如何快速煮成C#的？》（一）：相似的方法(2)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2010/09/21/1832589.html"&gt;《Java是如何快速煮成C#的？》（二）：数据访问(1)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/04/05/2006010.html"&gt;Microsoft SQL Server JDBC Driver 3.0&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2009/07/16/1524687.html"&gt;JDBC Driver For SQL2000/2005/2008&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2009/09/23/1572866.html"&gt;java中如何以windows集成方式连接SQL Server&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2009/06/02/1494310.html"&gt;纯JSP分页代码之sqlserver2005/2008&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/04/25/2027210.html"&gt;Apache Axis2 1.5.4在eclipse环境下的插件安装补充&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_69"  href="http://www.cnblogs.com/downmoon/archive/2009/08/25/1553896.html"&gt;Java操作IM的一些资源&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;MVC/GridView&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2009/11/03/1595284.html"&gt;MVC项目在IIS6上部署的几种思路&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_8"  href="http://www.cnblogs.com/downmoon/archive/2008/09/01/1281118.html"&gt;Reader转化为Entity类时系统性能的测试报告&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2009/11/03/1595191.html"&gt;MVC环境下fckeditor的使用示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_9"  href="http://www.cnblogs.com/downmoon/archive/2009/09/16/1568136.html"&gt;以一种"廉价"的方式获取页面的标题&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_16"  href="http://www.cnblogs.com/downmoon/archive/2009/07/01/1514519.html"&gt;在webForm中WebRequest\WebClient\WebBrowser获取远程页面源码的三种方式&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_19"  href="http://www.cnblogs.com/downmoon/archive/2009/02/05/1384931.html"&gt;AspNet上传文件的几个控件(downmoon收集)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2009/01/13/1374745.html"&gt;log4net写入到SQL server的基本配置&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2011/04/16/2017603.html"&gt;NPOI根据Excel模板生成原生的Excel文件实例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2011/03/28/1998077.html"&gt;Asp.net页面中给DropDownList赋值&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/05/30/2063258.html"&gt;MyXls导出Excel时在Web页即时生成原生Excel文件&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2011/04/20/2022921.html"&gt;分享一个改进版的仿MSN/QQ弹出窗口(C#)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2009/09/28/1575576.html"&gt;log4net写入日志文件示例时一个奇怪的错误（附源码下载）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2009/09/02/1558409.html"&gt;一个强大的LogParser的UI工具--logparserlizard简介&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2008/09/11/1289298.html"&gt;HttpCookie.HttpOnly VS Cookie.HttpOnly?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2009/01/15/1376693.html"&gt;DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2009/01/16/1376702.html"&gt;DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2008/12/04/1347581.html"&gt;GridView操作一条记录的N种方式&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2008/08/26/1276538.html"&gt;关于GridView的Group分组显示&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2007/12/30/1021151.html"&gt;GridView如何更新批量数据和单条记录？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_6"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019802.html"&gt;DataGrid/Gridview中的按钮反选事件与NamingContainer(命名容器)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019697.html"&gt;用代码创建DataGrid的多链接及checkbox事件响应&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_13"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1018433.html"&gt;DataGrid应用技巧两则---列求和与列字段转换&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_14"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1017880.html"&gt;动态指定DataGrid中多个参数的超链接列&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2007/12/30/1021139.html"&gt;在GridView中如何格式化Money型字段?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_26"  href="http://www.cnblogs.com/downmoon/archive/2008/08/27/1277433.html"&gt;从dataReader到Entity转化时利用Reflect示例(解决OutOfRangeException错误)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2010/10/17/1853381.html"&gt;用Markup Validation Service进行网页的W3C标准语法验证(c#)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2010/09/12/1824371.html"&gt;ClickOnce发布时报错：Cannot publish because a project failed to build&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_34"  href="http://www.cnblogs.com/downmoon/archive/2009/06/04/1495915.html"&gt;如何读取thumbs.db里的缩略图?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_71"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1017862.html"&gt;深入了解aspx页面的智能导航(SmartNavigation)功能&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Ajax:&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_50"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1020089.html"&gt;一个Page页面多个CheckBoxList的客户端验证(.net1.1及2.0实现)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/09/09/2172828.html"&gt;Jquery.Validate验证CheckBoxList,RadioButtonList,DropDownList是否选中&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2010/07/01/1769309.html"&gt;服务器端获取客户端动态添加的表格行数据的一个简单示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2009/11/09/1599199.html"&gt;prototype中文参数乱码解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2009/09/08/1562275.html"&gt;无需ajax刷新父页面的控件的值(ie/firefox)(downmoon原创)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2009/06/03/1495176.html"&gt;ajax for asp.net2.0中'Sys' is undefined的原因及解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_6"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019704.html"&gt;.net2.0中新增的Substitution控件--动态更新缓存页的部分（也可用于局部刷新）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_8"  href="http://www.cnblogs.com/downmoon/archive/2010/06/15/1758675.html"&gt;省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;工具：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_26"  href="http://www.cnblogs.com/downmoon/archive/2011/02/10/1950789.html"&gt;分享一个Winform下的分页控件&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_11"  href="http://www.cnblogs.com/downmoon/archive/2010/05/21/1741270.html"&gt;一个正则表达式的小工具--myRegexHelper&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_25"  href="http://www.cnblogs.com/downmoon/archive/2009/09/02/1558409.html"&gt;一个强大的LogParser的UI工具--logparserlizard简介&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_42"  href="http://www.cnblogs.com/downmoon/archive/2008/12/18/1357561.html"&gt;只允许输入数字型Textbox演示&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_52"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1020038.html"&gt;一个批量处理数组的方法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_46"  href="http://www.cnblogs.com/downmoon/archive/2008/07/23/1249410.html"&gt;像google,QQ,163那样一次上传多个文件&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_51"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1020063.html"&gt;一个动态菜单的例子&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_53"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1020026.html"&gt;C#实现仿msn提示消息在登录后只弹出一次的效果&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_57"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019892.html"&gt;一个生成验证字符或数字的增强类(downmoon)(基于.net1.1)及调用示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_65"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019458.html"&gt;一个自动动态播放图片的类（downmoon）新增图片效果&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_67"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019256.html"&gt;获取远程网页的内容之一&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019701.html"&gt;获取远程网页的内容之二&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_68"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1018459.html"&gt;一个可逆的DES和TripleDES方式加密类&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;算法：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_19"  href="http://www.cnblogs.com/downmoon/archive/2009/09/18/1569649.html"&gt;返回一行中相对数字比较集中最后的一个索引位置&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_20"  href="http://www.cnblogs.com/downmoon/archive/2009/09/17/1568800.html"&gt;袋中N个号码不同的球，任意取出三球中任二球均不连号的机率？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_23"  href="http://www.cnblogs.com/downmoon/archive/2009/09/16/1567443.html"&gt;韩信点兵问题的简单算法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/03/05/1971400.html"&gt;在1～500这500个整数中,找出连续相加等于500的数?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2010/07/05/1771077.html"&gt;一个类似于杨辉三角的数组算法思路&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_9"  href="http://www.cnblogs.com/downmoon/archive/2008/07/30/1256325.html"&gt;牛羊吃草问题求解&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_10"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1020038.html"&gt;一个批量处理数组的方法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;统计分析：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_5"  href="http://www.cnblogs.com/downmoon/archive/2010/09/24/1833752.html"&gt;0-1总体分布下的参数假设检验示例一&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2010/10/13/1850575.html"&gt;0-1总体分布下的参数假设检验示例一(SPSS实现）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2011/01/12/1933464.html"&gt;SPSS(|PASW)18 学习笔记(1)：入门示例－克山病例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2010/10/14/1850852.html"&gt;用SPSS进行单样本T检验(One -Sample T Test)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;其他：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_59"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019809.html"&gt;让sourceSafe每天自动备份及修复(适用于vss6.0和vss2005)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_41"  href="http://www.cnblogs.com/downmoon/archive/2008/12/30/1365248.html"&gt;.net读取Windows登录用户信息&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_36"  href="http://www.cnblogs.com/downmoon/archive/2009/04/09/1432227.html"&gt;PHP的三种典型开发环境&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_3"  href="http://www.cnblogs.com/downmoon/archive/2010/03/08/1680834.html"&gt;Winform部署mshtml程序集出错的一个解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_4"  href="http://www.cnblogs.com/downmoon/archive/2010/02/23/1671919.html"&gt;c#读取Excel的第一个Sheet表&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_9"  href="http://www.cnblogs.com/downmoon/archive/2008/08/20/1272185.html"&gt;c#操作ecxel的一些资源(downmoon搜集)&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_7"  href="http://www.cnblogs.com/downmoon/archive/2011/05/04/2036131.html"&gt;软件工程的国家标准下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_44"  href="http://www.cnblogs.com/downmoon/archive/2010/08/20/1804377.html"&gt;javascript中的float运算精度&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_45"  href="http://www.cnblogs.com/downmoon/archive/2010/08/18/1802095.html"&gt;(StreamReader.ReadLine()==null)还是(-1 != StreamReader.Peek())？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2009/02/14/1390448.html"&gt;.net操作MSN/IM/Messenger的一些资源（downmoon收集）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/downmoon/archive/2011/03/13/1982580.html"&gt;让MessageBox弹出在当前窗体的中央，而不是在屏幕的中央&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;安装部署：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_0"  href="http://www.cnblogs.com/downmoon/archive/2011/10/26/2224767.html"&gt;Windows Install Clean Up－windows安装卸载终极利刃&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_2"  href="http://www.cnblogs.com/downmoon/archive/2011/04/18/2019562.html"&gt;windows server 2008 关机后安装自动更新，反复启动，不能进入系统。&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_8"  href="http://www.cnblogs.com/downmoon/archive/2010/05/21/1740776.html"&gt;Installshield2010实现web部署和数据库安装示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_9"  href="http://www.cnblogs.com/downmoon/archive/2010/05/18/1738479.html"&gt;SQL Server 2008 r2 安装过程图解&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_10"  href="http://www.cnblogs.com/downmoon/archive/2010/04/16/1713665.html"&gt;InstallShield 2010集成.net Framework 4的安装包制作&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_11"  href="http://www.cnblogs.com/downmoon/archive/2010/04/14/1711738.html"&gt;vs2010正式版安装图解&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_14"  href="http://www.cnblogs.com/downmoon/archive/2010/02/27/1674634.html"&gt;InstallShield集成.net Framework的安装包制作&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_47"  href="http://www.cnblogs.com/downmoon/archive/2010/08/06/1794398.html"&gt;安装完Framework后如何不重启系统？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_48"  href="http://www.cnblogs.com/downmoon/archive/2010/06/30/1768046.html"&gt;Microsoft Visual Studio .NET 2003 引导程序插件下载地址（非官方）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;SQL：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_40"  href="http://www.cnblogs.com/downmoon/archive/2009/01/05/1369276.html"&gt;Access/MSSQL/Oracle/MySql获取当前用户连接数&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_33"  href="http://www.cnblogs.com/downmoon/archive/2009/06/06/1497617.html"&gt;根据表名自动生成I/S/U/D的SQL语句,用于MSSQL2000/2005/2008&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_56"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019895.html"&gt;SQLSERVER2000中表变量的应用&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_30"  href="http://www.cnblogs.com/downmoon/archive/2009/07/15/1524331.html"&gt;Database Project requires local SQL 2005 instance的解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_29"  href="http://www.cnblogs.com/downmoon/archive/2009/07/28/1532581.html"&gt;删除MSSQL数据库text字段中恶意脚本&amp;lt;Script="***.js"&amp;gt;&amp;lt;/script&amp;gt;的方法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_27"  href="http://www.cnblogs.com/downmoon/archive/2009/08/20/1550850.html"&gt;VS2008连接SQL Server数据库文件出错的解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_24"  href="http://www.cnblogs.com/downmoon/archive/2009/09/11/1564391.html"&gt;MSSQL中如何用SQL清除所有表的数据&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_16"  href="http://www.cnblogs.com/downmoon/archive/2009/10/23/1588405.html"&gt;SQL2005/2008中的CTE应用--递归查询&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_10"  href="http://www.cnblogs.com/downmoon/archive/2010/06/07/1753018.html"&gt;介绍一个开源的在线管理SQLServer的小工具--SQLEntMan&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_23"  href="http://www.cnblogs.com/downmoon/archive/2008/12/05/1348283.html"&gt;安装ASP.NET 快速入门教程时如何安装SQLServer而非SQLExpress&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_1"  href="http://www.cnblogs.com/downmoon/archive/2011/04/15/2016890.html"&gt;安装VS2010 SP1后SQL Server 2008 r2智能感知功能(IntelliSense)失效的一个解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_12"  href="http://www.cnblogs.com/downmoon/archive/2011/03/02/1968615.html"&gt;SQL server的一道入门面试题背后的思考&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_23"  href="http://www.cnblogs.com/downmoon/archive/2010/06/23/1763472.html"&gt;Vs2010在没有安装SQL Server 2005/2008 Express时如何连接MDF数据文件?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_24"  href="http://www.cnblogs.com/downmoon/archive/2010/06/18/1760391.html"&gt;SQL Server如何清除连接过的服务器名称历史？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_26"  href="http://www.cnblogs.com/downmoon/archive/2010/06/03/1750434.html"&gt;SQL Server中SMO备份数据库进度条不显示？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_28"  href="http://www.cnblogs.com/downmoon/archive/2010/04/26/1721150.html"&gt;一个简单XQuery查询的例子&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_29"  href="http://www.cnblogs.com/downmoon/archive/2009/12/27/1633302.html"&gt;DataRelation（DataSet中父子表)的一个示例&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_30"  href="http://www.cnblogs.com/downmoon/archive/2009/12/21/1628647.html"&gt;Access文件(.mdb)导入SQL Server时"错误代码为 0xC0202009"的解决方法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_31"  href="http://www.cnblogs.com/downmoon/archive/2009/12/13/1623004.html"&gt;SQL2008如何压缩日志(log)文件？&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_39"  href="http://www.cnblogs.com/downmoon/archive/2009/07/15/1524331.html"&gt;Database Project requires local SQL 2005 instance的解决方案&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_46"  href="http://www.cnblogs.com/downmoon/archive/2008/07/28/1251730.html"&gt;带附加条件的NewID()用法&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_47"  href="http://www.cnblogs.com/downmoon/archive/2008/03/11/1100113.html"&gt;如何清除sql2005中字段的字段备注信息?&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_49"  href="http://www.cnblogs.com/downmoon/archive/2007/12/30/1021136.html"&gt;根据SQL存储过程名取得存储过程内容&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_50"  href="http://www.cnblogs.com/downmoon/archive/2007/12/30/1021131.html"&gt;获取SqlServer 2005中字段的备注信息&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_51"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019906.html"&gt;用触发器来自动实时备份重要表数据&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_54"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019850.html"&gt;又两个很常用的sqlServer字段相关的sql语句&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_55"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019843.html"&gt;聚簇索引与非聚簇索引的区别&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_56"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019840.html"&gt;sql中压缩日志文件和ntextl转化为varchar的处理&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_57"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019832.html"&gt;关联表的批量更新&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_58"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019807.html"&gt;用SQL语句修改字段的默认值&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_59"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019799.html"&gt;三个很常用的存储过程&lt;/a&gt;（1 用于产生10条评论数据；2 产生分页的存储过程；3、根据存储过程名取存储过程内容）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_60"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019686.html"&gt;存储过程中的top+变量&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_61"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019663.html"&gt;前触发器和后触发器简介&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_62"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019655.html"&gt;SQL中Table型数据（表变量）与用户自定义函数&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_63"  href="http://www.cnblogs.com/downmoon/archive/2007/12/29/1019468.html"&gt;基本DDL 语句之Create Database&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_64"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1018452.html"&gt;SQL中通配符、转义符与"["号的使用&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a id="CategoryEntryList1_EntryStoryList_Entries_TitleUrl_65"  href="http://www.cnblogs.com/downmoon/archive/2007/12/28/1018075.html"&gt;MySQL的基础入门体会(一）&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2280313.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/12/08/2280313.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/12/07/2279400.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三：创建报表（本书完）</title><summary type="text">导读:本文主要创建报表，也就是MDX结果的最终展现，包括：1、创建一个简单的报表项目;2、连接到Analysis Services;3、设计DataSet;4、添加参数到DataSet;5、在Report中设置数据</summary><published>2011-12-07T07:45:00Z</published><updated>2011-12-07T07:45:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/12/07/2279400.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/12/07/2279400.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文主要创建报表，也就是MDX结果的最终展现，包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、创建一个简单的报表项目&lt;/p&gt;&#xD;
&lt;p&gt;■2、连接到Analysis Services&lt;/p&gt;&#xD;
&lt;p&gt;■3、设计DataSet&lt;/p&gt;&#xD;
&lt;p&gt;■4、添加参数到DataSet&lt;/p&gt;&#xD;
&lt;p&gt;■5、在Report中设置数据&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本文末尾处附本文所用示例下载。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、创建一个最简单的报表项目&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;步骤如下：第一步：在VS2008环境中新建一个Report项目，如下图所示：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pxCR6RQlPNhRcO-02RDl9LDD5ugnkolJ0xew08Tcs3SWhsq-7EwMkxIVvQ-4ohTlJ1etZMH7jr19ukEd_cdcbDQ/2011-12-5%2010-34-09.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pxCR6RQlPNhTtcFAv-Tn_Mi9CzJPQ6LXR5NkN8siEdK0JFXMgfRXO21sQKmmkiQ-52oK2tH5CMHhPXvcSEUl4Qg/2011-12-5%2010-47-11.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pxCR6RQlPNhRcO-02RDl9LDD5ugnkolJ0xew08Tcs3SWhsq-7EwMkxIVvQ-4ohTlJ1etZMH7jr19ukEd_cdcbDQ/2011-12-5%2010-34-09.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;二、连接到Analysis Services&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;创建一个数据源即可。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p6scCZtqcVVC61Rrw6ZOGLaUE5Re5YTVftV1wkXxmzifmGLvFeAHFHM-ss2GfF1si9VyZo5tHHSwtyGuwfQvSLw/2011-12-7%2010-21-58.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p6scCZtqcVVCt-jhVdWvo_BYRTmFf8ePFQghQaPoS8IN7EyeMYXtQMY-0qb2utIWb-ebPuETd4RTGLptL3HsdwQ/2011-12-7%2010-26-15.png?psid=1" alt="邀月工作室" width="605" height="447" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pa-Iew5VCQdYMqPw1FlfVV5Fc8t0Su0tHSUi-vQua0UgGWm-3Iy6btnMO39pvciaACi7g9MFSozD83YukntUwAg/2011-12-7%2010-27-21.png?psid=1" alt="邀月工作室" width="606" height="447" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;三、设计DataSet&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p8J-biW5Q7HDg-NmTstysZfyoTBZ38DgxJzolFlWaHss0zYhFYnGt4edqAakvtvq1niwdIFCi--C4CtlnsUgCZA/2011-12-7%2010-50-57.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p8J-biW5Q7HD8wycLyTa-6JeE2qbxIXYCIqOtpvcTS4HApnZMJAxdhs1bZtrZu2ZeyR7F_M0ZCD9HyFdLGFASVg/2011-12-7%2010-54-40.png?psid=1" alt="邀月工作室" width="600" height="489" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;添加一个计算成员&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p8J-biW5Q7HBOg4ipWz0YxJSxsv8Mh14QdJDrDpxneJAK5US-09lDoVMmQS1QY4RBURLt9KgOztJ2ch0u6kBTfQ/2011-12-7%2010-56-22.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pvGYBU7AgqUqPA93Yagu8_u0zpkwJmN7RN3qxpP0wL0CXxU_cCk0Wr3_FW-o954iahkGUdDyWxR9LFmrmmnMHPA/2011-12-7%2010-57-47.png?psid=1" alt="邀月工作室" width="599" height="664" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pui3qWR3wA2Tt6mcXD5NqO48IFcdo0uGdQ_qmqWiUrrMfyq9DAu0caSzahwvv9jolNiT0T3YkbY6ZE3Y6NeVBAw/2011-12-7%2010-59-34.png?psid=1" alt="" width="597" height="450" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例12-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Reseller Sales Per Order] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])&lt;br /&gt;SELECT&lt;br /&gt; &lt;strong&gt;NON EMPTY&lt;/strong&gt; {&lt;br /&gt; [Measures].[Reseller Order Count],&lt;br /&gt; [Measures].[Reseller Sales Per Order],&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; NON EMPTY { ( [Product].[Product].[Product].ALLMEMBERS ) }&lt;br /&gt; DIMENSION PROPERTIES&lt;br /&gt; MEMBER_CAPTION, MEMBER_UNIQUE_NAME&lt;br /&gt; ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt; CELL PROPERTIES&lt;br /&gt; VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE,&lt;br /&gt; FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;修改MDX查询：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pNI-TbOhs2Lxx6fGJeGD0QLVJxQAJO2lAXb7Z4Il8SDdUVSxLaG_tCw9l7dqYriF7byVhTTnc7WfcNk3o8qNg8Q/2011-12-7%2011-01-19.png?psid=1" alt="" width="601" height="448" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pNI-TbOhs2LxWUs4E_falBqThbnwLiZLkbl8k0uB4-d62LawwaFBv_jYuKZ0LhAnla6obU7oA7JKSUvbDQC2v_A/2011-12-7%2011-04-27.png?psid=1" alt="邀月工作室" width="602" height="468" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;至此，设计DataSet完成。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pNrhqGhH6B6DZWzk5EZz0EIPr5IKyrqAAo1yL8ORhd2l5E0vTkmp5tm__G0jp32VS4602uzqojIRU67LnQyJpxg/2011-12-7%2011-46-15.png?psid=1" alt="" width="610" height="621" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;四、添加参数到DataSet&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pVzr4ySYN8NgBNvVIyWVAiuIltSoKOzt_VQRi31x9Tmia9eeEUgrOgOXaEJgUc0QSqmIt8W7b6Fh8CoixVSJ_uQ/2011-12-7%2011-57-36.png?psid=1" alt="邀月工作室" width="609" height="459" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意到查询也发生了变化&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例12-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Reseller Sales Per Order] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])&lt;br /&gt;SELECT &lt;br /&gt; {&lt;br /&gt; [Measures].[Reseller Order Count],&lt;br /&gt; [Measures].[Reseller Sales Per Order],&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; { ([Product].[Product].[Product].ALLMEMBERS ) } &lt;br /&gt; DIMENSION PROPERTIES &lt;br /&gt; MEMBER_CAPTION, MEMBER_UNIQUE_NAME &lt;br /&gt; ON ROWS &lt;br /&gt;FROM ( &lt;br /&gt; &lt;strong&gt;SELECT &lt;br /&gt; ( { [Product].[Product Categories].[Subcategory].&amp;amp;[1] } ) ON COLUMNS &lt;br /&gt; FROM [Step-by-Step]&lt;br /&gt;&lt;/strong&gt; ) &lt;br /&gt;&lt;strong&gt;WHERE ( [Product].[Product Categories].[Subcategory].&amp;amp;[1] ) &lt;br /&gt;&lt;/strong&gt; CELL PROPERTIES &lt;br /&gt; VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, &lt;br /&gt; FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ppDzJwz-yvef3Kga4OfqE4vxbxzfdWHTh_BKz4qIx_SmxWXzzGeXvcH1fW5u3EV_qDK4KGeiijMtTm-xLF3t96Q/2011-12-7%2013-02-49.png?psid=1" alt="邀月工作室" width="633" height="390" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例12-3&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Reseller Sales Per Order] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])&lt;br /&gt;SELECT &lt;br /&gt; {&lt;br /&gt; [Measures].[Reseller Order Count],&lt;br /&gt; [Measures].[Reseller Sales Per Order],&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; { ([Product].[Product].[Product].ALLMEMBERS ) } &lt;br /&gt; DIMENSION PROPERTIES &lt;br /&gt; MEMBER_CAPTION, MEMBER_UNIQUE_NAME &lt;br /&gt; ON ROWS &lt;br /&gt;FROM ( &lt;br /&gt; SELECT &lt;br /&gt; ( &lt;strong&gt;STRTOSET(@ProductProductCategories, CONSTRAINED) ) ON COLUMNS&lt;/strong&gt; &lt;br /&gt; FROM [Step-by-Step]&lt;br /&gt; ) &lt;br /&gt;WHERE &lt;br /&gt; ( IIF(&lt;br /&gt; &lt;strong&gt; STRTOSET(@ProductProductCategories, CONSTRAINED).Count = 1&lt;/strong&gt;,&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;STRTOSET(@ProductProductCategories, CONSTRAINED),&lt;br /&gt;&lt;/strong&gt; [Product].[Product Categories].currentmember&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt;CELL PROPERTIES &lt;br /&gt; VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, &lt;br /&gt; FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;可以修改我们刚添加的参数：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ppI3ER-Jx-fPM1LY8Rz-P84pzM1nluQo-qVTeJ0Tew8-niW9E8XdTS9so8Nidpe380b64zjo_HLIB03c842werw/2011-12-7%2013-11-44.png?psid=1" alt="邀月工作室" width="566" height="364" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1paR2lvqj7QlwNLuMACyXh9nEtsf9Mo5kRkSqAIjHjaWT0npgMvWQrzeW2qOT1DWl33Bhrn6Ml8gbeur8gAT1EFw/2011-12-7%2013-14-50.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;修改参数以限制到Subcategory及以上的级别&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例12-4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH MEMBER [Measures].[ParameterCaption] AS&lt;/p&gt;&#xD;
&lt;p&gt;[Product].[Product Categories].CURRENTMEMBER.MEMBER_CAPTION&lt;/p&gt;&#xD;
&lt;p&gt;MEMBER [Measures].[ParameterValue] AS&lt;/p&gt;&#xD;
&lt;p&gt;[Product].[Product Categories].CURRENTMEMBER.UNIQUENAME&lt;/p&gt;&#xD;
&lt;p&gt;MEMBER [Measures].[ParameterLevel] AS&lt;/p&gt;&#xD;
&lt;p&gt;[Product].[Product Categories].CURRENTMEMBER.LEVEL.ORDINAL&lt;/p&gt;&#xD;
&lt;p&gt;SELECT {&lt;/p&gt;&#xD;
&lt;p&gt;[Measures].[ParameterCaption],&lt;/p&gt;&#xD;
&lt;p&gt;[Measures].[ParameterValue],&lt;/p&gt;&#xD;
&lt;p&gt;[Measures].[ParameterLevel]&lt;/p&gt;&#xD;
&lt;p&gt;} ON COLUMNS ,&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt; [Product].[Product Categories].ALLMEMBERS ON ROWS&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;FROM [Step-By-Step]&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;修改后的结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例12-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[ParameterCaption] AS&lt;br /&gt; [Product].[Product Categories].CURRENTMEMBER.MEMBER_CAPTION&lt;br /&gt;MEMBER [Measures].[ParameterValue] AS&lt;br /&gt; [Product].[Product Categories].CURRENTMEMBER.UNIQUENAME&lt;br /&gt;MEMBER [Measures].[ParameterLevel] AS&lt;br /&gt; [Product].[Product Categories].CURRENTMEMBER.LEVEL.ORDINAL&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; [Measures].[ParameterCaption],&lt;br /&gt; [Measures].[ParameterValue],&lt;br /&gt; [Measures].[ParameterLevel]&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;Descendants(&lt;br /&gt; [Product].[Product Categories].[All Products],&lt;br /&gt; [Product].[Product Categories].[Subcategory],&lt;br /&gt; SELF_AND_BEFORE&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; } ON ROWS &lt;br /&gt;FROM [Step-by-Step]&lt;/p&gt;&#xD;
&lt;p&gt;重要：&lt;strong&gt;Report Service提供&amp;ldquo;Select All&amp;rdquo;选项，此时，当某个用户设置All Members时，在参数的DataSet中的每个可用Member将被选择并提交。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pQ_n-QYTTmU8YMCgOjROsuJkBRfmWmDcgOephnIi23RMTi17yVME16Z1GFSBY0cJoDAAAnRbOq-NyrbG7wms3qA/2011-12-7%2013-37-56.png?psid=1" alt="邀月工作室" width="642" height="484" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;附带介绍一下Filter 操作符（运算符）：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pmMFpPVw7zTbRJa-nAC5aDp8iC0J2MK7tTGgxthicTXN2gTcxSMRVQ1p6byiswZpbILvPC5fsfWZPhFB_NAMlww/2011-12-7%2013-40-38.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在上面我们也用到三个字符转换函数：&lt;/p&gt;&#xD;
&lt;p&gt;StrToSet（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144782.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144782.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144782.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;StrToMember（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146022.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146022.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146022.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;StrToTuple（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146079.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146079.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146079.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;5、在Report中设置数据&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p6z53UALqmBaHaQMkO45K_ZH-3WiAFz6ozWRrgnEsASAgnejiQDkU6qcHRHcsyLcl5jf2qJo0NpZCicfE-_qujg/2011-12-7%2014-09-26.png?psid=1" alt="邀月工作室" width="728" height="349" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pAHOseh4QvHSv64dS5C5h6o92I94NNuC1GTvxYbU608DAVBa56g7o-_abQpzQBCPqShKkv28unsd8VrKJ08MgKA/2011-12-7%2014-17-41.png?psid=1" alt="" width="734" height="383" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;增加report汇总&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1phzGRE0jwQw7Oc0TV2ck8Mtv2aYRwjDJ7az53U7L3asXh8O9iQJv5RrysSUWst88EQ265N9IqRyJ3cfoHx-R2OA/2011-12-7%2014-23-18.png?psid=1" alt="邀月工作室" width="720" height="130" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1phzGRE0jwQw7KszW08QPVfYGDFBaw-fGJvb8Rvz-Pgtyd6w36c1r-_VRsfux1tI7t0ct6X9KDvOe8JkuBUiGh0g/2011-12-7%2014-25-32.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pv7teHYV5yS0PmcuwL3uzXruYEf7DajeIu1zS-t6n9yHFnW-R0ojZf8Lq8mAehFDWZMMtXpE1mfOikzIJapFpiw/2011-12-7%2014-39-22.png?psid=1" alt="邀月工作室" width="721" height="397" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上图的结果我们通过前节的练习，知道，结果是不准确的，Report Service默认使用Sum进行汇总，实际上我们需要使用的是Aggregate函数。&lt;/p&gt;&#xD;
&lt;p&gt;Reseller Order Count列基于Reseller Order Count度量，使用Distinct Count聚合函数。下面我们修改以使用Aggregate函数。&lt;/p&gt;&#xD;
&lt;p&gt;对第三列和第四列依次使用Aggregate函数:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pS11t9Jfc-DoLkKgtCFdVYJjTShenFndyNuJJc6fxuOUNBRCheaZZHv-ZnL3ExRJfodj0bpa-Oa7n5i154zvQzw/2011-12-7%2014-47-29.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;修改后的效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pS11t9Jfc-Drf5cbPEpMAAc9jYRD3ZsqVoAYRCD5kT141W92QmUdPSXxogj5vhRNXWlKSSGX15f2yPCgdeyWDAg/2011-12-7%2014-49-22.png?psid=1" alt="邀月工作室" width="717" height="451" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;格式化表格&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pHTLRrAPYs9MhZLDudSdUMIfPCQRJAvAxT2o_ZZERMAfow2rRgHuVbTyi0G387a_yzEMZfzDJ3jwbw3e2gIacKw/2011-12-7%2015-11-16.png?psid=1" alt="邀月工作室" width="723" height="356" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p0sB-UTObXWYQUEmnvSTtIWzcCuazIem_8cC7SDr-EYwIIgLLqSQTtFsv75a8qRF2e1imFOLqyJN3beRnayEKQw/2011-12-7%2015-17-00.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意:Currency与当前的操作系统设置相关。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pPwrZROSFPV8-izCa9xhsR6tPEfVo-Q0dru1OSl2lRX6ec1-cImKp8FbRECatNSr61cafBLQCoELz-Vt9agZCWA/2011-12-7%2015-19-36.png?psid=1" alt="邀月工作室" width="733" height="428" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当然，你可以尝试更多的显示效果，例如背景色：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pGLMGlG5wZeXpxIoTOLgLw3M9icia1ublKG6fo8E7v3IfKWwiYW6LbyizajtSktLW6k0uFN2arVvzbH4eXjgX_g/2011-12-7%2015-32-37.png?psid=1" alt="邀月工作室" width="677" height="562" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pGLMGlG5wZeXl_fN0u1E6WgVAhS1DnSINWGvAl1Lb_d85w5iXL8Gi_yw56t8iYXCUHRzRlTcLSxsDeJUAiin3Kw/2011-12-7%2015-33-09.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：本文是关于Report的初级入门知识，主要是前面所学MdX函数应用的前台展示。本书的学习也到此结束，总的来说，这算是一本书相当简易的基础书，其中的大部分内容都可以在MSDN中找到。&lt;/p&gt;&#xD;
&lt;p&gt;下面一本书将是Cube的提高《&lt;strong&gt;Expert Cube Development with Microsoft SQL Server 2008 Analysis Services&lt;/strong&gt;》，欢迎有兴趣的同学一起读书。&lt;/p&gt;&#xD;
&lt;p&gt;本文所用演示代码：&lt;a href="http://files.cnblogs.com/downmoon/MdxReportDemo.rar" target="_blank"&gt;下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2279400.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/12/07/2279400.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/12/02/2272381.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十二：动态安全</title><summary type="text">导读:本文主要介绍Analysis Service的安全问题，特别是账号的权限分配，包括：1、创建一个本地测试账号和基本数据库角色；2、限制标准属性层次结构（Attribute-Hierarchy Restrictions）；3、限制父子层次结构（Restricting Parent-Child Hierarchies）；4、实施Cell级别的限制（Implementing Cell-Level Restrictions）</summary><published>2011-12-02T09:04:00Z</published><updated>2011-12-02T09:04:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/12/02/2272381.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/12/02/2272381.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文主要介绍Analysis Service的安全问题，特别是账号的权限分配，包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、创建一个本地测试账号和基本数据库角色&lt;/p&gt;&#xD;
&lt;p&gt;■2、限制标准属性层次结构（Attribute-Hierarchy Restrictions）&lt;/p&gt;&#xD;
&lt;p&gt;■3、限制父子层次结构（Restricting Parent-Child Hierarchies）&lt;/p&gt;&#xD;
&lt;p&gt;■4、实施Cell级别的限制（Implementing Cell-Level Restrictions）&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、创建一个本地测试账号和基本数据库角色&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;创建本地账号的步骤如下：&lt;/p&gt;&#xD;
&lt;p&gt;假定账号为MdxUser，属于用户组MdxUserGroup。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pLmKUGB-FvCAFI5bsOJazaStqSDbU10ZX1uG0FWtAALQKJwPpYat-oKnBponZAJKtstCrSxmEpY5QmKh6dQFtSw/2011-12-2%2012-01-09.png?psid=1" alt="邀月工作室" width="593" height="538" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pdIYAENdxxzH_AVCY5A51aVJzv7qx-x7J9HWs99IU1BUjkuv357PHHe5HAS-Vge0qoiX-GFU-DpAvm9jv8GPZEw/2011-12-2%2013-07-17.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;创建数据库的角色如下：Role&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pIQvvx8-u9RWLOOTKO00vxOtsj2q3youRJE-64cpSgmdMo0qllEQKIUEAsX91-trD-WVDUivWHlm_qqSlVQUdBw/2011-12-2%2013-37-20.png?psid=1" alt="邀月工作室" width="599" height="488" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pb2uy234GfQWhPqt-E9XS55xmlZlP_kkal4kwXD7RjnrTu55PTJMh_NDcs0uBoZ7HFBmjAlGRN58ALVXNnxJo0A/2011-12-2%2013-39-23.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pb2uy234GfQXJRmmVv91d4ThJmUZ5CuSEkVkGeJjTbL_8bEKNuJe3154yTYpz8u0YOU4yiWAhIs3yyVH2BDHN1A/2011-12-2%2013-41-27.png?psid=1" alt="" width="618" height="282" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下来检验我们上面的设置是否生效。我们使用UserName函数（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146016.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146016.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146016.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;在cmd中输入:&lt;/p&gt;&#xD;
&lt;p&gt;Set ComputerName&lt;/p&gt;&#xD;
&lt;p&gt;rem &amp;lsquo;获取机器名为AP4&lt;/p&gt;&#xD;
&lt;p&gt;RunAs /user:computername\MdxUser "ssms"&lt;/p&gt;&#xD;
&lt;p&gt;此时提示输入mdxuser账号的密码：&lt;/p&gt;&#xD;
&lt;p&gt;输入成功后，即可以MdxUser登录Analysis Service&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p77bjeG3qGZtg2WK7GP0hh0MANrts-LyK_wCBt5GSKyK4JpNghzVu7Hjikzs-EEOvOVwh9iiaE3x35TNQE_46sg/2011-12-2%2013-58-34.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pSwo46zynyDf4iEAaL8bYuSwn2PyxH_K6qx7MHxivpZLMdq96Pbv4MiTJq64BykP_gYJYm5jqwAgcK2GZMFBV4Q/2011-12-2%2014-05-59.png?psid=1" alt="" width="693" height="396" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Current User] AS&lt;br /&gt; UserName()&lt;br /&gt;SELECT&lt;br /&gt; {[Measures].[Current User]} ON COLUMNS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pSwo46zynyDfIikYG2ZPICjk3sWH3eqZS3rkASH9vrn1BBG4ZgnaxvwlOJnl39Lmw952jkm2vV77bcTBnMK9jhg/2011-12-2%2014-09-01.png?psid=1" alt="邀月工作室" width="695" height="415" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;修正以仅返回当前登录的用户名&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Current User] AS&lt;br /&gt; VBAMDX!Right(&lt;br /&gt; UserName(),&lt;br /&gt; VBAMDX!Len(UserName()) - &lt;br /&gt; VBAMDX!Instr(UserName(),"\")&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {[Measures].[Current User]} ON COLUMNS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pU_4N6oJ6pOlLDPclOT7bYTTBpJY6BueY22srFizyZB2m6UkS6lmsRR8Xs0zc5v0u26SQzIoCoBVzQGx-7mxsaw/2011-12-2%2014-17-01.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;顺便我们介绍一个技巧，我们在查询时不知道列或者仅想作测试时，可以用empty Sets来代替，其作用类似于SQL查询中的&amp;ldquo;*&amp;rdquo;。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-3&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; &lt;strong&gt;{}&lt;/strong&gt; ON COLUMNS,&lt;br /&gt; {[Product].[Product].[Product].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img src="https://public.bay.livefilestore.com/y1pt6Se3kM58er--o2QcFyjrtfF3tBKK8eQOmt6mh4_kGSPuf99mBxlEsQ5SbtnitJvB0zyVMkv5K6PUs2vD8TDUw/2011-12-2%2014-58-47.png?psid=1" alt="" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、限制标准属性层次结构（Attribute-Hierarchy Restrictions）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;第一步设计允许集&lt;/strong&gt;&lt;/span&gt;，在此之前我们先看一个基本示例：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-4 &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {} ON COLUMNS,&lt;br /&gt; {[User].[User].[User].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pRE8aao3CDPHBslgRPVWpcCTEkL-zSpiMBlbZs7-SykCf3_ZEq_2iD7lhHSSfRKZT6VIslC_W2I7IPDKsXNjjCA/2011-12-2%2015-06-17.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果不希望MdxOtherUser出现在这个查询结果中，那么如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {} ON COLUMNS,&lt;br /&gt; StrToSet(&lt;br /&gt; "{([User].[User].[User].[" +&lt;br /&gt; VBAMDX!Right(&lt;br /&gt; UserName(),&lt;br /&gt; VBAMDX!Len(UserName()) - &lt;br /&gt; VBAMDX!Instr(UserName(),"\")&lt;br /&gt; ) + "])}"&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1plMpXZq0V8LSYi363kr2PldnskEwN6F209d8VgT3YOXiH6qqO_jBln2w3hBo5DNUjIB-_l6WUWM7la1dt4pNelQ/2011-12-2%2015-10-37.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意上例中使用了StrToSet（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144782.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144782.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144782.aspx&lt;/a&gt;），类似的还有&lt;/p&gt;&#xD;
&lt;p&gt;StrToValue（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144951.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144951.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144951.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;StrtoTuples（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146079.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146079.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146079.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在例11－3中执行结果切换到Message视图产，可以看到有397个成员。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p-N6hYAom2xsWX6niMaS4G1gWOkh1wc3Dm4pO1gCRERq_mI0R8egvP5Z-BX60N6cBuAAxO5wXyVTHmhX-qjw3jQ/2011-12-2%2015-17-46.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们作个限制：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Exists&lt;/strong&gt;(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; {[User].[User].[User].[MdxUser]},&lt;br /&gt; &lt;strong&gt; 'User Product Relationship'&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p-N6hYAom2xs3b7vHbyRt4K6NChn1B9kMjaPEpUcqwOBDwttXLr4ZNgG-2UvFz8Nh1ML4qcki_MXRPgOxBEBCrA/2011-12-2%2015-18-58.png?psid=1" alt="邀月工作室" width="566" height="387" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第二步&lt;strong&gt;实施允许集&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pMMryJ49YkOQknK7XuL9l8cf7Hwrm6U5apXFre1S76TouAVI4KPH8gt5Z9m7VsU5bZHMBLlFxgWU-iZNErgIPpw/2011-12-2%2015-39-02.png?psid=1" alt="邀月工作室" width="631" height="514" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pMMryJ49YkOTrU4dmpCi2qck71P5HX6GEGTTvtSK6Q7MOMevRxCtb4_aB3pYLyMJaZSvM2TD3moqNtb1kSSVo8g/2011-12-2%2015-44-10.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pP3vn4nYirtYIHG_gko_45OZC1afiempfJfVWk--K_6ftmOLqV0utO9_bPAr66EKtTxce2Ag9sqMSUXqnEmEcXQ/2011-12-2%2015-55-41.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;设置完成，我们&lt;strong&gt;第三步检验设置&lt;/strong&gt;效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pw5mnkBmkUOza1f3xbN9-VStxc_NbfxiEikYbSf0S907jWQqEP4TsMjAEUpmMM4duqAz6kELFI6A2L6_1cUFWEw/2011-12-2%2015-57-29.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;有人会注意到这个结果109与刚才的108不一致，其实，限制集并不关心是否与MdxUser有关联，所以是109。&lt;/p&gt;&#xD;
&lt;p&gt;此时，再重新执行例11-4，结果只有MdxUser一项。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、限制父子层次结构（Restricting Parent-Child Hierarchies）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在一个维度中，如果引用自身，比如最典型的父子层次关系是员工和账户。一个员工出于业务需要可能有多个账户。第一步&lt;strong&gt;设计允许集&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们看一个查询实例：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-7&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {} ON COLUMNS,&lt;br /&gt; {[Employee].[Employees].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pvQj0BQPieGF6TRXAQgc538NJSd03uziBjTyJIxHFd3F2RvMoPjpzcc-uOyITTvTZviNr3kiXFwLpsFBT5tuRsw/2011-12-2%2016-12-32.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-8&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[User] AS&lt;br /&gt; [Employee].[Employees].CurrentMember.Properties("User")&lt;br /&gt;SELECT&lt;br /&gt; {([Measures].[User])} ON COLUMNS,&lt;br /&gt; {[Employee].[Employees].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意到Stephen Y.Jiang对应的windows用户为MdxUser&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p8A6TJ6tRE6y0Q0fZmm90wv1IsHjV7v7VWEt1BxxqBY5ywvvFhtfuwA3zoCGRrVaZAhpbe6wVvVesY9pB_Pv2hw/2011-12-2%2016-18-27.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们修改查询如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-9&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[User] AS&lt;br /&gt; [Employee].[Employees].CurrentMember.Properties("User")&lt;br /&gt;SELECT&lt;br /&gt; {([Measures].[User])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Filter(&lt;br /&gt; {[Employee].[Employees].Members},&lt;br /&gt; [Employee].[Employees].CurrentMember.Properties("User")=&lt;br /&gt; VBAMDX!Right(&lt;br /&gt; UserName(),&lt;br /&gt; VBAMDX!Len(UserName()) - &lt;br /&gt; VBAMDX!Instr(UserName(),"\")&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;第二步&lt;strong&gt;实施允许集&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p8MiX2xpL5GFj_a-FN65cUK5oGtUwyX-kNJmDdqfCQ0r7zPo2oVnjq8lStI0xLHbvm1ddQdjwMNBxSFk0gvHlDw/2011-12-2%2016-31-03.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;第三步检验允许集：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pPxl_7WCh1cl2h6JNVAVYjPK-31yJD7tow3BmUBaU5xyuRXcuZRREG5CcOEd-IOGy-o_KFpmRmUB20Nh9huZEtg/2011-12-2%2016-36-12.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个结果的意义是&lt;strong&gt;：当你用MdxUser账户登录后，你可以访问这14个层次关系的成员，包括直接的和间接的。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4、实施Cell级别的限制（Implementing Cell-Level Restrictions）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;重要：&lt;/span&gt;本段内容以上段内容为基础，因此，对应的MdxUser限制也基于上例。如果没有完成上例，请先完成第3部分的操作。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第一步：设计逻辑表达式&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-10&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {[Employee].[Employees].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pbg884pvppZWMDK1A6Lr9ANohEm4erQakJh2N9w6Z7FuSXiQVjBCU2lbPtAeXDo171ESRsxKlOFhr24YBtJH93Q/2011-12-2%2016-50-48.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例11-11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Is Accessible] AS&lt;br /&gt; Count(&lt;br /&gt; Intersect(&lt;br /&gt; Ascendants([Employee].[Employees].CurrentMember),&lt;br /&gt; Filter(&lt;br /&gt; {[Employee].[Employees].Members},&lt;br /&gt; [Employee].[Employees].CurrentMember.Properties("User")=&lt;br /&gt; VBAMDX!Right(&lt;br /&gt; UserName(),&lt;br /&gt; VBAMDX!Len(UserName()) - &lt;br /&gt; VBAMDX!Instr(UserName(),"\")&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ) &amp;gt; 0&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Is Accessible])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Employee].[Employees].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pbg884pvppZWFcHJWSbpNpdUlIM_sMYAdJYRX6Puvt3sT_9C1wQGJY_7miSmMaawqIQVarRhdoAH2DraredxGCw/2011-12-2%2016-52-10.png?psid=1" alt="邀月工作室" /&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;第二步：实施设计&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Count(&lt;br /&gt; Intersect(&lt;br /&gt; Ascendants([Employee].[Employees].CurrentMember),&lt;br /&gt; Filter(&lt;br /&gt; {[Employee].[Employees].Members},&lt;br /&gt; [Employee].[Employees].CurrentMember.Properties("User")=&lt;br /&gt; VBAMDX!Right(&lt;br /&gt; UserName(),&lt;br /&gt; VBAMDX!Len(UserName()) - &lt;br /&gt; VBAMDX!Instr(UserName(),"\")&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ) &amp;gt; 0&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pZirhrbGKPR5zYesLpSoYuLX8qsTk4nrLFG_Hswzb9M1MRD8UkJ5q1fK3VogiLHzWlGKzyo7TsxtrqbbV2QC28g/2011-12-2%2016-56-29.png?psid=1" alt="邀月工作室" width="642" height="286" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;第三步：验证限制&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;再次执行例11-10&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1p9hqJgY23csN4gUFsZ3fWWyn_tCsrPTeL8RFMo8CwFTKRGhlzbaJdFDQBlqkV4X0mTHO0FzOEixQSZnrTfyrOyw/2011-12-2%2017-00-17.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;重要：&lt;/span&gt;完成本例后请务必删除MdxUser和MdxUserGroup用户组。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：&lt;/p&gt;&#xD;
&lt;p&gt;本文介绍动态安全的相关内容，主要包括限制标准属性层次结构，限制父子层次结构、实施Cell级别的限制。下文将继续学习创建报表，也是本书的最后一部分内容。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2272381.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/12/02/2272381.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/12/01/2270875.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十一：计算成员和动态命名集</title><summary type="text">导读:前面几篇介绍MDX的基本函数，从本文起，开始介绍一些简单的MDX应用。本文是Cube的增强篇，包括：1、构建Cube范围的简单计算成员（Calculated Members）;2、构建Cube范围的复杂计算成员（Calculated Members）;3、动态命名集（Dynamic Named Sets）</summary><published>2011-12-01T08:50:00Z</published><updated>2011-12-01T08:50:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/12/01/2270875.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/12/01/2270875.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:前面几篇介绍MDX的基本函数，从本文起，开始介绍一些简单的MDX应用。本文是Cube的增强篇，包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、构建Cube范围的简单计算成员（Calculated Members）&lt;/p&gt;&#xD;
&lt;p&gt;■2、构建Cube范围的复杂计算成员（Calculated Members）&lt;/p&gt;&#xD;
&lt;p&gt;■3、动态命名集（Dynamic Named Sets）&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;另外文尾提供两个项目源码：Chapter10_Begin.Rar和Chapter10_End.Rar，顾名思义，开始和完成。请读者自行修改数据源ds的连接串。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、构建简单的计算成员（Calculated Members）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;每个AS的Cube都包含一个单个的MDX脚本，它由一系列声明（statement）组成，其中绝大多数MDX的第一个声明是CALCULATE。下面我们组建一个最基本的计算成员。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Product].[Category].[All Products].[Bikes &amp;amp; Accessories] AS &lt;br /&gt; ([Product].[Category].[Bikes]) + ([Product].[Category].[Accessories]) &lt;br /&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Reseller Order Count]), &lt;br /&gt; ([Measures].[Discount Percentage]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; {[Product].[Category].AllMembers} ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ptIbQSmQDkbS6UJaU-EVY5lhAIgi91Eff4iooFq3d3hZvYBnCtNe-jSXay0sN5F454PG5yBLgehgEZ8JC7Yb4ZA/2011-12-1%209-45-44.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;更灵活的方式&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Product].[Category].[All Products].[Bikes &amp;amp; Accessories] AS &lt;br /&gt; &lt;strong&gt;Aggregate( &lt;br /&gt; { &lt;br /&gt; ([Product].[Category].[Bikes]), &lt;br /&gt; ([Product].[Category].[Accessories]) &lt;br /&gt; }, &lt;br /&gt; [Measures].CurrentMember &lt;br /&gt; ) &lt;br /&gt;&lt;/strong&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Reseller Order Count]), &lt;br /&gt; ([Measures].[Discount Percentage]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; {[Product].[Category].AllMembers} ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pe3aFe0QJi4R_wXiyKn1AvbqRk2UWeRdDWD8q6mXwZgCJbUIwSoZ-CGzNFHzrP4T9xuFvMvsJFuaKEHP-JDwHNw/2011-12-1%209-50-54.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在我们用create Mmeber在开发环境中设计这个计算成员：&lt;/p&gt;&#xD;
&lt;p&gt;首先，打开vs2008，打开本文提供的示例：MDX Step-by-Step.sln&lt;/p&gt;&#xD;
&lt;p&gt;如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pMcXNW-T2_5iPKcphia6rhq-51UA9GzOaO16CsO7F6FVOYYZ5fczkcu0mVfcnE3Y0lN2rWPjugRTHftRQoE_xQw/2011-12-1%2010-02-15.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pFyQZEtTHRe0fYI2rX_EvWV02jVjuX1v9PRHvNZxtzayuqufq9zfzu0-Gafj8YgtprhegLOB61XY3IaneJcKWgA/2011-12-1%2010-29-39.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;选择Step-By-Step.cube，Calculations选项卡，点击&amp;ldquo;New Calculated Member&amp;rdquo;按钮，修改名称为&amp;ldquo;&lt;strong&gt;[Bikes &amp;amp; Accessories]&lt;/strong&gt;&amp;rdquo;， &lt;br /&gt;Parent Properties选项，选择&amp;ldquo;Product.Category&amp;rdquo;维度，Parent Member选项，选择&amp;ldquo;&lt;strong&gt;[All Products]&lt;/strong&gt;&amp;rdquo;，在Expression中输入：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Aggregate( &lt;br /&gt; { &lt;br /&gt; ([Product].[Category].[Bikes]), &lt;br /&gt; ([Product].[Category].[Accessories]) &lt;br /&gt; }, &lt;br /&gt; [Measures].CurrentMember &lt;br /&gt; )&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;最后如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pxNBut60efRb90BqCJ_ZUUoohXiwzIdjg6PoYsNgePJ4ZgII-5SBdZVoPo_Ym0su1Yww9KfeFyqzIGWQj1n4hxA/2011-12-1%2011-02-20.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;切换到script视图以查看语法：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p54C9y3iO3N9gOoSL_Cb8HqLQjM8t7RtUwOLiokFFsqz83z5q-4rG2cuLMRu-YV8AHabpdTeUoavU5k4223svlA/2011-12-1%2011-03-05.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;设计完计算变量后，下一步是部署，步骤如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pVeg7xK7pcBcOpRQKphUDxioX_cb2pOVmap5_07gf62MfsHsHqMgzhpCkN9vO0SHtdR-MUIZYb3w1E_boI9qFBQ/2011-12-1%2012-00-50.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pMw7agGsse0QLDswJjBHn_-aXgf_gbjNeLDgzcxCCHcC_XvNZw1gwUBACrZ3wP2IgR8iZUxkBurQ1IkOm-ladTg/2011-12-1%2013-01-54.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pIUuNhafwScqG1U-n40wkmB6fR2tm10tCU4iZu_wF0GxkzOMXiRp5cxPqpIDwAltB7kiY27LpfJthVFjQMj2ccQ/2011-12-1%2013-02-41.png?psid=1" alt="邀月工作室" width="526" height="132" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pVJKJdTTK8LMQUESk7djays0r9JHfbG3O1DZG-qczjAs1YQ_x5weq0Ugb96pfUE0JwkIMftp9yLLUa2hAmCadHQ/2011-12-1%2013-31-07.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;部署完成！&lt;/p&gt;&#xD;
&lt;p&gt;可以通过下例验证刚部署的&lt;strong&gt;Cube范围&lt;/strong&gt;的计算成员&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-3&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Order Count]),&lt;br /&gt; ([Measures].[Discount Percentage])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Category].AllMembers} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pah-_dzbjzVvG5kE09j9YskY1kx9cYjJ1zUfWLzeWra-5Q9BECd4H3IfxQGF8BMlHn1FUAfAPJwprZ15O7HNHGw/2011-12-1%2013-38-17.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、构建复杂计算成员（Calculated Members）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;对于以下查询：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Reseller Sales Amount Average] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; ([Measures].[Reseller Transaction Count])&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;MEMBER [Measures].[Reseller Sales Amount Variance] AS&lt;br /&gt; (&lt;br /&gt; ([Measures].[Squared Reseller Sales Amount]) /&lt;br /&gt; (([Measures].[Reseller Transaction Count])-1)&lt;br /&gt; ) - &lt;br /&gt; (([Measures].[Reseller Sales Amount Average])^2) &lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;MEMBER [Measures].[Reseller Sales Amount Std Dev] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount Variance])^(0.5)&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount Average]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Variance]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Std Dev])&lt;br /&gt; } ON COLUMNS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pqECGtFJZk-lF0MQTERJBpvnVWUdo3fCp4rZQyFty_H1wREmD59ebfN-bUQ8vTfyrekXXwiA5mlng1QtpAQPpcw/2011-12-1%2014-03-59.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;例10－4也可以通过计算成员实现&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pBfJjQFS230DbmsCbXL9kZUXv-THvF-91dFgcWx8NMuuwz8BWZFjZeVq4HddtHC5eYDLot9l-JgnKw4-zdNhu8A/2011-12-1%2014-11-03.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pJHuaUoip3e51pJuU3lEdC4MYz5yaiLMfjUzxRfehDvo4iskZ90jwFP9ZKzz5-pek3txYFD1pwifLUbrTzsAQtw/2011-12-1%2014-11-58.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pJHuaUoip3e57JvOrFUJeyLuUXCMQqq5PTvBojbXzdjHRC40kIg9jf5ks3uTl0NIVkPiy13E2Pq-BHswbbVnoWw/2011-12-1%2014-12-48.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;检验后如上部署，&lt;/p&gt;&#xD;
&lt;p&gt;此时，我们在SSMS管理界面，可以看到：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ptQ20Rz-HjRxe-rrhKoe4h_XUIiCso7_4LHjkaP8LlAjx6VNh9gjFW3ymkjTgVHoqhGRS9MVl6bVmqmH8qxAWjg/2011-12-1%2015-30-18.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;再用下列查询重新实现10-4&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount Average]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Variance]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Std Dev])&lt;br /&gt; } ON COLUMNS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ptQ20Rz-HjRw4GJFt9f5vHuzr9MTXXaDg5V-ZrNQwz1ESPH7UmLygdQXLP3EYtVfQ4wOnUJ8LrcwZKnxCclSTHw/2011-12-1%2015-32-58.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;顺便介绍一下NON_EMPTY_BEHAVIOR属性的应用。&lt;/p&gt;&#xD;
&lt;p&gt;在MDX查询器中执行下例：&lt;br /&gt;&lt;span style="color: #ff0000;"&gt;例10-6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Average]),&lt;br /&gt; ([Measures].[Reseller Sales Amount Std Dev])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Subcategory].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p4pPfNRxw9apKFViEDGoL1sf91pWGkQtxD5iXg5STe1B7rauAfZzIY8F1Nqh23S0g29-sycW8OB9b3tyO61iefw/2011-12-1%2016-08-37.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在BIDS中如下图设置：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1ppi1c4Ia2f1U1dzrElAGGfmyl9NAkpQA55vj7ParJft_qvFZtXPQtuzSqnztvp-k2MD3oU_5R3z7Y1Bxt_Og18w/2011-12-1%2016-04-17.png?psid=1" alt="邀月工作室" width="626" height="445" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;勾选后部署，效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1pk48aSTOFgMrugD79-I5hLFBxg4f1P4dWTT65FTjCU43UGu28Cj8YHOsg744XiU6kYwnJlBTwtzPZAEAmZX1eKQ/2011-12-1%2015-56-14.png?psid=1" alt="邀月工作室" /&gt; &#xD;
&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、组装一个命名集（Assembling Named Sets）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看下例查询&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-7&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;TopCount&lt;/strong&gt;(&lt;br /&gt; [Product].[Product].[Product].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-8&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;&lt;strong&gt;SET &lt;/strong&gt;[Top 5 Products] AS&lt;br /&gt; TopCount(&lt;br /&gt; [Product].[Product].[Product].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;{[Top 5 Products]&lt;/strong&gt;} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;上面两个例子的查询是一致的。[Top 5 Products]就是一个命名集。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p0sk79au5EHM14coc2YfwjJDaeCzNRns67F9kw3jrUlu0B3rPWzOtpPQJqsjINyfiY5DmxUk6856VSn9z1KUJ1A/2011-12-1%2016-20-28.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在BIDS界面中如下设置（增加一个命名集）：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://public.bay.livefilestore.com/y1p1Xux3TskK5ix6BinDIhBdCtayMP5NKdvkrkA__tApbmKq0NxXiXXYqNOXWkdhZ92kBaoMY8ao2JxTgm0G1eWHg/2011-12-1%2016-26-17.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;保存并部署，&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://public.bay.livefilestore.com/y1pMjnRulWWereWKwHVUx0wX76KiRA10TbUFcUq17_yVO3ptq6A1yfojjwPgwI1C-uLncPIA6oW-47tDGirp39M8w/2011-12-1%2016-33-11.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;再调用该命名集&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例10-9&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;{[Top 5 Products]}&lt;/strong&gt; ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果同上。&lt;/p&gt;&#xD;
&lt;p&gt;提示：在Analysis service的2008版本中提供了&amp;ldquo;Dynamic Named Sets&amp;rdquo;，之所以称为动态，是因为这个集并不缓存，而是每次使用时动态调用。区别在于Create后面紧跟一个Dynamic关键字&lt;/p&gt;&#xD;
&lt;p&gt;CREATE &lt;strong&gt;DYNAMIC&lt;/strong&gt; SET CURRENTCUBE.[Top 5 Products]&lt;br /&gt; AS TopCount(&lt;br /&gt; [Product].[Product].[Product].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ), DISPLAY_FOLDER = 'Sets';&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;源码下载：&lt;/p&gt;&#xD;
&lt;p&gt;1、 &lt;a href="http://files.cnblogs.com/downmoon/Chapter10_Begin.rar"&gt;Chapter10_Begin.rar&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2、&lt;a href="http://files.cnblogs.com/downmoon/Chapter10_End.rar"&gt;Chapter10_End.rar&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：&lt;/p&gt;&#xD;
&lt;p&gt;本文介绍Cube的增强功能，主要包括构建计算成员和动态命名集。下文将继续学习实现动态安全。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2270875.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/12/01/2270875.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/11/29/2267593.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十：Time进阶</title><summary type="text">导读:在AS中，最重要的一个维度莫过于Time，围绕Time，MDX提价供了一系列函数来满足复杂的业务分析需求。本文主要内容包括：1、计算累积总和（Calculating an Accumulating Total）；2、计算滚动平均值（Calculating Rolling Averages）；3、执行阶段至阶段（Period-over-Period）的分析；4、组合时间指标（Combining Time-Based Metrics）</summary><published>2011-11-29T06:39:00Z</published><updated>2011-11-29T06:39:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/11/29/2267593.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/11/29/2267593.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:在AS中，最重要的一个维度莫过于Time，围绕Time，MDX提价供了一系列函数来满足复杂的业务分析需求。本文主要内容包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、计算累积总和（Calculating an Accumulating Total）&lt;/p&gt;&#xD;
&lt;p&gt;■2、计算滚动平均值（Calculating Rolling Averages）&lt;/p&gt;&#xD;
&lt;p&gt;■3、执行阶段至阶段&lt;strong&gt;（Period-over-Period）&lt;/strong&gt;的分析&lt;/p&gt;&#xD;
&lt;p&gt;■4、组合时间指标（Combining Time-Based Metrics）&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、计算累积总和（Calculating an Accumulating Total）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关于Time维度，最核心的一个层次是calendars，它允许你从更高级的颗粒度，如年，或者更小的颗粒度季、月、天等进行钻取。&lt;/p&gt;&#xD;
&lt;p&gt;基于标准Calendar的一个用户定义层次。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pd3PPBFcz3gRYt5Ad_PZRH9hwQUbQDt_mbWIdtm5RTRQcS1J9wYCToL9aCRTjsljr3hrnB3djvmk/2011-11-28%2016-45-16.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关于累积总和，我们首先用到一个函数PeriodsToDate（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144925.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144925.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144925.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS, &lt;br /&gt; { &lt;br /&gt; PeriodsToDate( &lt;br /&gt; [Date].[Calendar].[Calendar Year], &lt;br /&gt; &lt;strong&gt;[Date].[Calendar].[Month].[April 2002] &lt;br /&gt;&lt;/strong&gt; ) &lt;br /&gt; } ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pW_oy_TLR76BfjDo1acoSfqY5swT67rRoeFl7horiC5DfovWRaNF7AxaSMtzqSyBA9wo6uiX5WEU/2011-11-28%2016-58-26.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS, &lt;br /&gt; &lt;strong&gt;{[Date].[Calendar].[Month].Members} ON ROWS &lt;br /&gt;&lt;/strong&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pt0BHo0yiwwGbqLtCFqE8NvV-U3OPY-C-Zm6q8vDJbza7Sd6kliBeaPf8cFaf6zlqekMwnCMGkeM/2011-11-28%2017-02-03.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-3 &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Measures].[Year to Date Reseller Sales] AS &lt;br /&gt; &lt;strong&gt;Aggregate( &lt;br /&gt; PeriodsToDate( &lt;br /&gt; [Date].[Calendar].[Calendar Year], &lt;br /&gt; [Date].[Calendar].CurrentMember &lt;br /&gt; ), &lt;br /&gt; ([Measures].[Reseller Sales Amount]) &lt;br /&gt; ) &lt;br /&gt;&lt;/strong&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Year to Date Reseller Sales]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pk2zhbt5Zb3cQfOcF6fplXUDW-SUv6Y-S9OFV5TtSbO5z77MhKD4D1ZG1b9Bt683pm18IieV7MR8/2011-11-28%2017-04-51.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Year to Date Reseller Sales] AS&lt;br /&gt; Aggregate(&lt;br /&gt; PeriodsToDate(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;MEMBER [Measures].[Quarter to Date Reseller Sales] AS&lt;br /&gt; Aggregate(&lt;br /&gt; PeriodsToDate(&lt;br /&gt; &lt;strong&gt; [Date].[Calendar].[Calendar Quarter],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt;&lt;/strong&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Year to Date Reseller Sales]),&lt;br /&gt; ([Measures].[Quarter to Date Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p-0ykKQ2xWJLghgXbmGIl02GqmY0NWKKnY4VCOdGmukuSNzY33wzzkpSScfH2giJopgOunuRYd0Q/2011-11-29%2011-24-23.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX还提供了一系列的函数来进行PeriodsToDate的简化运算，如&lt;/p&gt;&#xD;
&lt;p&gt;Ytd（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146039.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146039.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146039.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Qtd（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145978.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145978.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145978.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Mtd（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144753.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144753.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144753.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Wtd（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144930.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144930.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144930.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;所以，例9－4也可以这样实现:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Year to Date Reseller Sales] AS&lt;br /&gt; Aggregate(&lt;br /&gt; &lt;strong&gt;Ytd([Date].[Calendar].CurrentMember),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;MEMBER [Measures].[Quarter to Date Reseller Sales] AS&lt;br /&gt; Aggregate(&lt;br /&gt; &lt;strong&gt; Qtd([Date].[Calendar].CurrentMember),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Year to Date Reseller Sales]),&lt;br /&gt; ([Measures].[Quarter to Date Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果同上。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;period-to-date返回一个特定边界（如一季、一年等）的值。有时，你想计算所有统计日期内的一个精确值，这就是所谓的初始日期（Inception-to-Date）值。你可以引用Null成员，&lt;span style="color: #ff0000;"&gt;&lt;span style="color: #000000;"&gt;例如&lt;/span&gt;Null: &#xD;
[Date].[Calendar].CurrentMember&lt;/span&gt;&lt;span style="color: #000000;"&gt;将强制AS使用前一个成员到当前时间成员所在级别上的第一个成员的边界（Range），下面的查询与上例类似&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Inception to Date Reseller Sales - PTD] AS&lt;br /&gt; Aggregate(&lt;br /&gt; PeriodsToDate(&lt;br /&gt; [Date].[Calendar].[(All)],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;MEMBER [Measures].[Inception to Date Reseller Sales - Range] AS&lt;br /&gt; Aggregate(&lt;br /&gt; &lt;strong&gt; NULL:[Date].[Calendar].CurrentMember,&lt;br /&gt;&lt;/strong&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Inception to Date Reseller Sales - PTD]),&lt;br /&gt; ([Measures].[Inception to Date Reseller Sales - Range])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、计算滚动平均值（Calculating Rolling Averages）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX中计算滚动平均值，使用LastPeriods（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145588.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145588.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145588.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-7&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;LastPeriods&lt;/strong&gt;(&lt;br /&gt; 3,&lt;br /&gt; [Date].[Calendar].[Month].[January 2002]&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pwhkqfwjGwT-xJ0LNiLVU1HoNBOolKOHAhXxhV1p3i4RpGDUL3x4YzlEzMKHsuHfJoHQGe4U4qSk/2011-11-29%2012-00-13.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;前推三个月。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-8&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;&lt;/strong&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1poSB14O9TJHEGr4-ohArFswkv3b_PZKx0BUWkW8fp8w89CniudjfDzpeVa5u321BejKhRqN2dWEo/2011-11-29%2012-02-46.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们计算滚动平均值&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-9&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Three Month Avg Reseller Sales Amount] AS&lt;br /&gt; Avg(&lt;br /&gt; LastPeriods(&lt;br /&gt; 3,&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Three Month Avg Reseller Sales Amount])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pXmg3ezoXFkb1DWsQMmvXPqfaUTwBfHFKqXLjvYd86a7L__MU0WPQ8rksCPiSk0h5yIEtnt3Zh0I/2011-11-29%2013-08-48.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、执行阶段至阶段&lt;strong&gt;（Period-over-Period）&lt;/strong&gt;的分析&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在统计中我们常听到两个概念：同比、环比。所谓同比就是今年第n月与去年第n月比。环比就是今年第n月与第n-1月或第n+1月比。在AS中，我们可以用ParallelPeriod（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145500.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145500.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145500.aspx&lt;/a&gt;）进行运算。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-10&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;Descendants&lt;/strong&gt;(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;上例中我们用到了前文提到过的Descendants（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146075.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146075.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms146075.aspx&lt;/a&gt;）,一个计算后裔的函数。计算的是以[CY 2003]为基础，在月等级上，返回指定的所有结果集&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pHq_a5OSKd80jfM9KmRVkT2kpU5tIPi8IF9pE2sWY458UsPdsc0aYYTODFf_JoLiZ_nKEdPIUZkM/2011-11-29%2013-22-28.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们构造一个虚拟Period&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;WITH&lt;br /&gt;MEMBER [Measures].[x] AS&lt;br /&gt; ParallelPeriod(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; 1,&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ).Name&lt;/strong&gt;&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt;([Measures].[x])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pFDruqF5unGQYDOt2aAoKhD4wqTJF8dSv8JbeSNL_8t3i-C7uSC0IXir0Tq8xtsS-DyVdnN1io64/2011-11-29%2013-27-29.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在此基础上，我们实现了同比计算。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-12&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Reseller Sales Amount] AS&lt;br /&gt; (&lt;br /&gt; &lt;strong&gt;ParallelPeriod(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; 1,&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; ,FORMAT="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Prior Period Reseller Sales Amount])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;Descendants(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pwWAYI2slPttmBWvZkGyWGQ1ZGzBZn-Q_sJkHnJJRvOUAityVqDIUJgPBi1GSSvl_ScDOoHp0bfc/2011-11-29%2013-41-33.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们做一个小小的改动，以显示同比增长率&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-13&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Reseller Sales Amount] AS&lt;br /&gt; (&lt;br /&gt; ParallelPeriod(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; 1,&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;&lt;strong&gt;MEMBER [Measures].[Prior Period Growth] AS&lt;br /&gt; (&lt;br /&gt; ([Measures].[Reseller Sales Amount])-&lt;br /&gt; ([Measures].[Prior Period Reseller Sales Amount])&lt;br /&gt; ) / &lt;br /&gt; ([Measures].[Prior Period Reseller Sales Amount])&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Prior Period Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt; ([Measures].[Prior Period Growth])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pcUBGeJx1YiGOmcBIRa-r7p5fSFipg0gEB4nS7CUAiHxTPgVb0JQHDVOk1P-Lpy6qgh4ecTh_8oY/2011-11-29%2013-46-17.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;一个忠告：到目前为止，我们再一次领会到基于时间的函数并不是时间感知，而是为了具体的功能而简单地进行导航。&lt;/p&gt;&#xD;
&lt;p&gt;我们通过Cousin（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145481.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145481.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145481.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Ancestor（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145616.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145616.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145616.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Lag（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144866.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144866.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms144866.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;重新实现上例9-11。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-14&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[x] AS&lt;br /&gt; &lt;strong&gt; Cousin&lt;/strong&gt;(&lt;br /&gt; [Date].[Calendar].CurrentMember,&lt;br /&gt; &lt;strong&gt;Ancestor&lt;/strong&gt;(&lt;br /&gt; [Date].[Calendar].CurrentMember,&lt;br /&gt; [Date].[Calendar].[Calendar Year]&lt;br /&gt; ).&lt;strong&gt;Lag(1)&lt;br /&gt;&lt;/strong&gt; ).Name&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[x])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;输出结果同例9-11&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-15&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[x] AS&lt;br /&gt; ParallelPeriod(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; 1,&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ).Name&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[x])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[Calendar Year].[&lt;strong&gt;CY 2002&lt;/strong&gt;],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pYavtR0tcEUv3bKq3nojYZFUaYv_gRyNh7krKeVM1ZTnPAr2MU1EDNhmPQQoW9X4B6m_9iA6oP_U/2011-11-29%2014-03-38.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;出现Null的原因是对应的2001年的统计数据是从July开始的，所以产生了整体的错位。这个问题的解决方案在哪里？目前还真没有。惟一能提醒大家的是：&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;在计算类似功能时一定要先控制好数据的边界范围。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、组合时间指标（Combining Time-Based Metrics）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们基于一个实例来说明。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-16&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1paFA-0RKjdkJjb_g22ISgFXjldtkfJ5oBmlbyj5PD1vR_iEF7kP9ffrJfA_qTBBFKoX7-EntQE40/2011-11-29%2014-15-44.png?psid=1" alt="邀月工作室" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-17&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Year to Date Reseller Sales] AS&lt;br /&gt; &lt;strong&gt;Aggregate(&lt;br /&gt; PeriodsToDate(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Year to Date Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pMa6MTAvCRGSaumI5n0dqYFTkiPE9dsYImxlA5iFkLe-Zapjw-4Ec1oON-Fh7MLrVtyOs4ZSpTqo/2011-11-29%2014-17-44.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以上例为基础，可以很轻易地计算同比的&amp;ldquo;差额&amp;rdquo;,请细心观察下例的用法。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-18&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Year to Date Reseller Sales] AS&lt;br /&gt; (&lt;br /&gt; ParallelPeriod(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; &lt;strong&gt; 1,&lt;br /&gt;&lt;/strong&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; [Measures].[Year to Date Reseller Sales]&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;MEMBER [Measures].[Year to Date Reseller Sales] AS&lt;br /&gt; Aggregate(&lt;br /&gt; PeriodsToDate(&lt;br /&gt; [Date].[Calendar].[Calendar Year],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Year to Date Reseller Sales]),&lt;br /&gt; ([Measures].[Prior Period Year to Date Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; Descendants(&lt;br /&gt; [Date].[Calendar].[CY 2003],&lt;br /&gt; [Date].[Calendar].[Month],&lt;br /&gt; SELF&lt;br /&gt; )&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pVH_BBbPLNSZact3WPIHlQDM4EIKle0gegRlCmpv7WfsOKca0DqzGdnwNQTLqJWyHiIXqQ5jcQIE/2011-11-29%2014-21-10.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;最后，顺便介绍一下两个日期函数OpeningPeriod（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145992.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145992.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145992.aspx&lt;/a&gt;）和ClosingPeriod（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145584.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145584.aspx" target="_blank"&gt;http://msdn.microsoft.com/zh-cn/library/ms145584.aspx&lt;/a&gt;）。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例9-19&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[First Child Rate] AS&lt;br /&gt; (&lt;br /&gt; &lt;strong&gt;OpeningPeriod&lt;/strong&gt;(&lt;br /&gt; [Date].[Calendar].[Date],&lt;br /&gt; [Date].[Calendar].CurrentMember&lt;br /&gt; ),&lt;br /&gt; [Measures].[End of Day Rate]&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Standard"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[First Child Rate]),&lt;br /&gt; ([Measures].[End of Day Rate])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;WHERE ([Destination Currency].[Destination Currency].[Euro])&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pXt9LgISAZZOS-151ZQwfgLdfc5ct_gjU3y94QQ3_7VzXA-OzlYu0jEOAmL_dv8P2WnDyG1Us5kw/2011-11-29%2014-28-27.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：&lt;/p&gt;&#xD;
&lt;p&gt;本文介绍Time相关的函数及其应用。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2267593.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/11/29/2267593.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/11/27/2264848.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记九：导航结构层次</title><summary type="text">导读:本文介绍MDX中的导航结构层次（Hierarchies）。成员（Member）之间的关系可以用家族来描述。本文以此为基础，介绍了：1、访问直系亲属关系（Immediate Relatives）2、访问延伸亲属关系（Extended Relatives）3、在一个级别（Level）内导航</summary><published>2011-11-27T01:51:00Z</published><updated>2011-11-27T01:51:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/11/27/2264848.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/11/27/2264848.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文介绍&lt;strong&gt;MDX中的导航结构层次（Hierarchies）。成员（Member）之间的关系可以用家族来描述。本文以此为基础，介绍了&lt;/strong&gt;：&lt;/p&gt;&#xD;
&lt;p&gt;■1、访问直系亲属关系（Immediate Relatives）&lt;/p&gt;&#xD;
&lt;p&gt;■2、访问延伸亲属关系（Extended Relatives）&lt;/p&gt;&#xD;
&lt;p&gt;■3、在一个级别（Level）内导航&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;成员（Member）之间的关系可以用家族来描述。（其中Siblings是兄弟、旁支的意思，照顾下E文不好的朋友，呵呵）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p7bAS76bo0nxEun1jb9LLggl-l5xVZQg453ylEjFQcbIFmwt9nTdvoaXmIZACTWts-_n7BiKSG3o7gzilCt7igA/2011-11-24%2010-47-20.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们以此为类，演示如何访问直系亲属和非直系亲属。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、访问直系亲属关系（Immediate Relatives）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;直系亲属的访问函数如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pC7RHQA7UzqXbcyKaTVXHb4W1M3pNyEvEc3I-SPfgX1R3zivUFXW7PNHlk2RDO1GkK6L1N0_hx4pgs57pa0DpDA/2011-11-24%2010-57-56.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;为了更好理解直系亲属关系，准备一个原始例子&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS, &lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members} ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们增加Parent属性:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;WITH &lt;br /&gt;MEMBER [Measures].[Percent of Parent] AS &lt;br /&gt; ([Measures].[Reseller Sales Amount])/ &lt;br /&gt; ( &lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent, &lt;br /&gt; [Measures].[Reseller Sales Amount] &lt;br /&gt; ) &lt;br /&gt; ,FORMAT="Percent"&lt;/strong&gt; &lt;br /&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].&lt;strong&gt;[Percent of Parent]&lt;/strong&gt;) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; {[Product].[Product Categories].Members} ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p2RzKQdZKd87OMk2shZ-fW2f8Q2-6DfamL3FS_IMTeJ-FHZ7fZTtz0j_fHp44ARqAP5pnV3ka9ko/2011-11-27%208-09-04.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个结果还有有一些刺眼，特别是第一条记录这样的。因为除数为0。&lt;/p&gt;&#xD;
&lt;p&gt;我们改进一下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-3 &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Percent of Parent] AS&lt;br /&gt; &lt;strong&gt; IIF(&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent Is Null, &lt;br /&gt; Null,&lt;br /&gt;&lt;/strong&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; (&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent,&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Percent of Parent])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Product].[Product Categories].Members&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img src="https://byfiles.storage.live.com/y1pNTgPugBQ22HIgobN58E95e-RBk_aW4EDE6iHrznS-x6WonWPpbSRkhEnTlmS9Atf8BTtQivJRfw/2011-11-27%208-13-32.png?psid=1" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;顺便我们介绍一个有用的函数Rank（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144726.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144726.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms144726.aspx&lt;/a&gt;），与SQL中的Rank类似。&lt;/p&gt;&#xD;
&lt;p&gt;例如如下查询：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt;{([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt;{[Product].[Product Categories].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1poQC9Wwck7fzo2SnP1PhmwAC2DiAMC8OLDLAd3y1CUIcda8ONrboOH49uSzCHSS1f4ng7pCaicxY/2011-11-27%208-19-56.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们进行排名：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;WITH &lt;br /&gt;MEMBER [Measures].[Sibling Rank] AS&lt;br /&gt; Rank(&lt;br /&gt; [Product].[Product Categories].CurrentMember,&lt;br /&gt; [Product].[Product Categories].CurrentMember.Siblings,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;/strong&gt;&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt; ([Measures].[Sibling Rank])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Product Categories].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pSr2bmTk0qsGnaJjDay5mEOmI7SmVHD5Yp01SK03f5ETKNcQTz41Zp2Ia7U2WtlmpPmiZyjLgJ0k/2011-11-27%208-22-31.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;排名有了，再改进一下排序：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Measures].[Sibling Rank] AS&lt;br /&gt; Rank(&lt;br /&gt; [Product].[Product Categories].CurrentMember,&lt;br /&gt; [Product].[Product Categories].CurrentMember.Siblings,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Sibling Rank])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;Order(&lt;br /&gt; {[Product].[Product Categories].Members},&lt;br /&gt; ([Measures].[Sibling Rank]),&lt;br /&gt; ASC&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pzytVZQScWyw4qQuh6IwUg3bxpxSFrlZRaHOSSUIDqnjKCtCzf_56PLZOglDD7lRo5mBYIMr3zF8/2011-11-27%208-25-28.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、访问延伸亲属关系（Extended Relatives）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p2FP5VtQvleRTWscK5vyjFwrjIUbS5tpxohgPV6vrqM_DPF_0IC0ajqsiQoPcEMiXWEKQTeM63nQ/2011-11-27%208-26-48.png?psid=1" alt="邀月工作室" width="649" height="294" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pvBrwU80YvZJOZ0vOproxH8oQ-el7eKDeDNB2exYyWdrzmoBQX_yzslaE7kbn5YJSmDojRsSUg3Q/2011-11-27%208-29-26.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;其中相比直系关系，多了几个Flag:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pHtENI6oKgd9LTbz-Th2DhqoYEKj2yhizCvVkcH3sPQA1oHZxraDiqKSKK2c4Fmnl8Y-zL6GRTHs/2011-11-27%208-32-38.png?psid=1" alt="邀月工作室" width="662" height="351" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们以上面的例8-3为例，首先我们增加一个Ancestor&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-7&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Percent of Parent] AS&lt;br /&gt; IIF(&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent Is Null, &lt;br /&gt; Null,&lt;br /&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; (&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent,&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;&lt;strong&gt;MEMBER [Measures].[Percent of Category] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; (&lt;br /&gt; Ancestor(&lt;br /&gt; [Product].[Product Categories].CurrentMember,&lt;br /&gt; [Product].[Product Categories].[Category]&lt;br /&gt; ),&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Percent of Parent]),&lt;br /&gt; &lt;strong&gt; ([Measures].[Percent of Category])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Product Categories].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pZonjZWRPv8VILTCrDMuqFG_KS4xb-HIFS3Yy13oPiF62CS7EeTXcoGxxxy0ae6izYfvo3zhzEqI/2011-11-27%208-40-50.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;仿上，我们进行改进：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-8&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Percent of Parent] AS&lt;br /&gt; IIF(&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent Is Null, &lt;br /&gt; Null,&lt;br /&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; (&lt;br /&gt; [Product].[Product Categories].CurrentMember.Parent,&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;MEMBER [Measures].[Percent of Category] AS&lt;br /&gt; &lt;strong&gt; IIF(&lt;br /&gt; Ancestor(&lt;br /&gt; [Product].[Product Categories].CurrentMember,&lt;br /&gt; [Product].[Product Categories].[Category]&lt;br /&gt; ) Is Null, &lt;br /&gt; Null,&lt;br /&gt;&lt;/strong&gt; ([Measures].[Reseller Sales Amount])/&lt;br /&gt; (&lt;br /&gt; Ancestor(&lt;br /&gt; [Product].[Product Categories].CurrentMember,&lt;br /&gt; [Product].[Product Categories].[Category]&lt;br /&gt; ),&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Percent of Parent]),&lt;br /&gt; ([Measures].[Percent of Category])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Product Categories].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pQWgankfPbeHlxRmirz8_xUASmBcAvbKkwz_OtcQ_uh7NaAsSNSqWYP-vUCzExRMTvF-Raoho3AY/2011-11-27%208-44-10.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们尝试穿越&amp;ldquo;血缘关系&amp;rdquo;计算Product的百分比贡献。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-9&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {([Product].[Product Categories].[Product].[Mountain-200 Black, 42])} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pFOuq-Ds1TCYbsAs7zeV6Tx44GfBWF_s7lDuA1liwFu5AvZGGAYSUMjyfKTiYh_ATS0KbPPtXL0w/2011-11-27%209-00-29.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-10&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt;Ascendants(&lt;br /&gt; [Product].[Product Categories].[Product].[Mountain-200 Black, 42]&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pf38ipjRaYogxCjZKSuIy-T-Ymdz9vEso1p5TmEaJLDPkguN1vFpSceYfZ3I6vZY4WAq1u38n83Q/2011-11-27%209-02-39.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; Hierarchize(&lt;br /&gt;&lt;/strong&gt; {&lt;br /&gt; Ascendants(&lt;br /&gt; [Product].[Product Categories].[Product].[Mountain-200 Black, 42]&lt;br /&gt; )&lt;br /&gt; }&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pBYV_VdteNO-lR1AdWM7uuFa1lF7sxhAV2dXxXozGbBG9CP2Lrf5qSkGEqX1HiflOq1ms0aaYhEc/2011-11-27%209-04-13.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-12&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;&lt;strong&gt;MEMBER [Measures].[Percent Contribution Reseller Sales] AS &lt;br /&gt; (&lt;br /&gt; [Product].[Product Categories].[Product].[Mountain-200 Black, 42],&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; ) / &lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ,FORMAT="Percent"&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt; ([Measures].[Percent Contribution Reseller Sales])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; Hierarchize(&lt;br /&gt; {&lt;br /&gt; Ascendants(&lt;br /&gt; [Product].[Product Categories].[Product].[Mountain-200 Black, 42]&lt;br /&gt; )&lt;br /&gt; }&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1peCjwgg6gsliv6V-2laMgsDRGKrS96_6wL8QpzRwvL_QmF2ZK3fNMZD5G_ZJyA5ORm940cyqo7D0/2011-11-27%209-06-45.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们组装一个给定分类的后裔集合&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-13&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {[Product].[Product Categories].[Category].[Bikes]} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pDWe4wkZx4o4w029tzyn9XlZACg4qAdnJXMNf5lLCdZbogkUvNjcVbr_YH_LxtTpjUO_6f4bulgY/2011-11-27%209-11-22.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-14&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; Descendants(&lt;br /&gt; {[Product].[Product Categories].[Category].[Bikes]},&lt;br /&gt; [Product].[Product Categories].[Subcategory]&lt;br /&gt; ) ON ROWS&lt;br /&gt;&lt;/strong&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pc8mgST18CZ2RUFOLjXNNhWGXU-0tZL9QanQAIxAWG5wYvc0Ro8XqnvkBzLU7-IWwb99CXErC6xc/2011-11-27%209-13-20.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-15&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; Descendants(&lt;br /&gt; {[Product].[Product Categories].[Category].[Bikes]},&lt;br /&gt; [Product].[Product Categories].[Subcategory],&lt;br /&gt; &lt;strong&gt; AFTER&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p5FjSoZDIMwNOHXHlg4Ji_xIQ6DzK3E16a-JwcC9hDXcm6PWysK8jXfKJpY-oPVNFKDw2NSDPDNg/2011-11-27%209-15-01.png?psid=1" alt="邀月工作室" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;After标志符提供了SubCategory以下的后裔集合&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-16&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; Descendants(&lt;br /&gt; {[Product].[Product Categories].[Category].[Bikes]},&lt;br /&gt; [Product].[Product Categories].[Subcategory],&lt;br /&gt; &lt;strong&gt; SELF_AND_AFTER&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1puH7Tlnmp32JcL7ZpzTFsO1wXhLuScHI3DPMPl1BneyWsc0NHaRtfFXJz8P401T-KCAwldNc4wrg/2011-11-27%209-19-47.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELF_AND_AFTER标志符提供了SubCategory及以下的后裔集合&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-17&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; Descendants(&lt;br /&gt; {[Product].[Product Categories].[Category].[Bikes]},&lt;br /&gt; [Product].[Product Categories].[Subcategory],&lt;br /&gt; &lt;strong&gt; BEFORE_AND_AFTER&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1p8mkbzgPNBL-taaXVNMFe7EMTzP592GOnY5I71WTcuYc7cTjDJMB6vYmOvhAjhiC4moaUyClThdQ/2011-11-27%209-22-17.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;BEFORE_AND_AFTER标志符提供了包含SubCategory的上级分类的所有后裔集合&lt;/p&gt;&#xD;
&lt;p&gt;大家有兴趣可以了解一下几个相关的成员函数：&lt;/p&gt;&#xD;
&lt;p&gt;IsAncestor（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144842.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144842.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms144842.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;IsSibling（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144749.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144749.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms144749.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;IsLeaf（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms144932.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms144932.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms144932.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-18&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Number of Children] AS&lt;br /&gt; IIF(&lt;br /&gt; &lt;strong&gt; IsLeaf&lt;/strong&gt;([Product].[Product Categories].CurrentMember),&lt;br /&gt; "N/A",&lt;br /&gt; COUNT(&lt;br /&gt; [Product].[Product Categories].CurrentMember.Children&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {[Measures].[Number of Children]} ON COLUMNS,&lt;br /&gt; {[Product].[Product Categories].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pxRdOAfA7FOWIcfwLBVxkLVe07Bc_ao4Bo0vdm87QxgFQs7QCJZ7Vf7l3NuWFIEnyYyX946UAGXA/2011-11-27%209-31-16.png?psid=1" alt="邀月工作室" /&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、在一个级别（Level）内导航&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在一个级别内导航会用到几个函数：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pO8NX59vm-XFYhTuM47JaNbyQxRnCG9AOVaYtIiGuOYwOX3743IzXLlRhbDaOkYq-OVY70aQtBFU/2011-11-27%209-32-52.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;比如计算月之间的百分比差距&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-19&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pCnvs9yX1K93WmUDjzdZk5HY77tBsbR_vlTYoa_ea4Zw-LBQCh41lnA3iG3f5TAer83yIxIbb_I4/2011-11-27%209-35-55.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-20&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Reseller Sales] AS&lt;br /&gt; ([Date].[Calendar].CurrentMember.&lt;strong&gt;PrevMember&lt;/strong&gt;,[Measures].[Reseller Sales Amount])&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Prior Period Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img src="https://byfiles.storage.live.com/y1pnV6VDQrS9d8YNTqcfobiq_Arb1-YSIQISONdqxjJWjI4pgZowcA-Kv_9RPjq5YDlFNHRNT-bELk/2011-11-27%209-38-07.png?psid=1" alt="" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-21&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Reseller Sales] AS&lt;br /&gt; ([Date].[Calendar].CurrentMember.PrevMember,[Measures].[Reseller Sales Amount])&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;MEMBER [Measures].[Change in Reseller Sales] AS&lt;br /&gt; &lt;strong&gt; ([Measures].[Reseller Sales Amount]) - ([Measures].[Prior Period Reseller Sales])&lt;br /&gt;&lt;/strong&gt; ,FORMAT="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Prior Period Reseller Sales]),&lt;br /&gt; ([Measures].[Change in Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p6i0u2jmEvEUudGP9oUT4vsAsXssXcazaGNtXTv-_nuAb2sNCsJhTLaZMJFlnzw2BhJx31DR2f_0/2011-11-27%209-40-23.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例8-22&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Prior Period Reseller Sales] AS&lt;br /&gt; ([Date].[Calendar].CurrentMember.PrevMember,[Measures].[Reseller Sales Amount])&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;MEMBER [Measures].[Change in Reseller Sales] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount]) - ([Measures].[Prior Period Reseller Sales])&lt;br /&gt; ,FORMAT="Currency"&lt;br /&gt;&lt;strong&gt;MEMBER [Measures].[Percent Change in Reseller Sales] AS&lt;br /&gt; ([Measures].[Change in Reseller Sales])/&lt;br /&gt; ([Measures].[Prior Period Reseller Sales])&lt;br /&gt; ,FORMAT="Percent"&lt;/strong&gt;&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Prior Period Reseller Sales]),&lt;br /&gt; ([Measures].[Change in Reseller Sales]),&lt;br /&gt; ([Measures].[Percent Change in Reseller Sales])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Date].[Calendar].[Month].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pvJKJo3qDWsiryFiSuoGZmxVWyRAPqdbIL_9BsHL5qNJlHsRv7J7pjrOQbJXeCYCmMCWS41ACuoQ/2011-11-27%209-43-18.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果觉得最后一列格式不够完美，读者可以自行修正一下。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：&lt;/p&gt;&#xD;
&lt;p&gt;本文介绍&lt;strong&gt;MDX中的导航结构层次（Hierarchies）。成员（Member）之间的关系可以用家族来描述。本文包含了比较多的函数。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2264848.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/11/27/2264848.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/11/23/2260578.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记八：执行聚合（下）</title><summary type="text">导读:本文介绍执行聚合（Aggregation）的进阶内容，包括：1、使用Max和Min函数2、在集中对元组计数3、DistinctCount函数4、使用Generate浏览集合</summary><published>2011-11-23T09:19:00Z</published><updated>2011-11-23T09:19:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260578.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260578.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文介绍&lt;strong&gt;执行聚合（Aggregation）的进阶内容，&lt;/strong&gt;包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、使用Max和Min函数&lt;/p&gt;&#xD;
&lt;p&gt;■2、在集中对元组计数&lt;/p&gt;&#xD;
&lt;p&gt;■3、DistinctCount函数&lt;/p&gt;&#xD;
&lt;p&gt;■4、使用Generate浏览集合&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、求最大最小值&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;与SQL类似，MDX也提供了名称相同的两个函数：Min（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145600.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145600.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145600.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Max&lt;strong&gt;（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145601.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145601.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145601.aspx&lt;/a&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;准备一个原始例子&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-12&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们增加Max函数&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-13&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[&lt;strong&gt;Max Sales By Subcategory&lt;/strong&gt;] AS&lt;br /&gt; &lt;strong&gt; Max(&lt;br /&gt;&lt;/strong&gt; {[Product].[Subcategory].[Subcategory].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt;([Measures].[Max Sales By Subcategory])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果如下： &lt;br /&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p58gLj_XK-zqgtjLu0BlGLKH32_W14fSrhYIt0SpQW31rQ9-33cLCZvC5kFni-nI2O0_OxVb4eHI/2011-11-23%2016-04-46.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;进一步，我们可以再动态计算均值与最大值的比&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-14&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Percent of Max] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount]) /&lt;br /&gt; ([Measures&lt;strong&gt;].[Max Sales By Subcategory])&lt;br /&gt;&lt;/strong&gt; ,FORMAT_STRING="Percent"&lt;br /&gt;MEMBER [Measures].[Max Sales By Subcategory] AS&lt;br /&gt; Max(&lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Percent of Max])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1poEd825v3EOwSlHX46xSmqXrP4VQIkZ4TQX-kgIx0flkL-1HvaoOKRlVUjkSga4qoK-yznSPnn78/2011-11-23%2016-09-49.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、在集合中对元组计数（Counting Tuples in Sets）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;与SQL类似，MDX也使用Count（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146026.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146026.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146026.aspx&lt;/a&gt;）来计数，不过Count函数的参数可以是维度、集、层次结构级别和元组（Tuple）。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-15&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Internet Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt;{[Product].[Product].[Product].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pqk2rc6PUw6EFEeqD2NvUH1DryZ9J20IvA4TfJtPV2WfMtxVjkQ_2LXgMMNQhBmZaJ1vL4H6S_90/2011-11-23%2016-18-32.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意结果中有很多null,使用Count加Exists&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Products By Category] AS&lt;br /&gt; &lt;strong&gt;Count(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members}&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {([Measures].[Products By Category])} ON COLUMNS,&lt;br /&gt; {[Product].[Category].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1ptd4vG0UYSz6UzV5b04KLYSsiVwf3G_IeQYq7O05neQgPXevurSdgpFTx9T3g1w9QWhZ-_ktHDDQ/2011-11-23%2016-25-39.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Count也可以进行条件过滤&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-17&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Products] AS&lt;br /&gt; Count(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members}&lt;br /&gt; )&lt;br /&gt;MEMBER [Measures].[Reseller Products] AS&lt;br /&gt; &lt;strong&gt; Count(&lt;br /&gt; Filter(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount]) &amp;gt;= &lt;br /&gt; ([Measures].[Internet Sales Amount])&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Products]),&lt;br /&gt; &lt;strong&gt; ([Measures].[Reseller Products])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Category].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p5Ar2NciaalvQObPyilpKVpw4h9HvWFz8Ihb-dj0Zh8faH6Ls8XUIrZnaItgXI6pfSoSDvRN6YlI/2011-11-23%2016-34-27.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;加上ExcludeEmpty关键字&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-18&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Products] AS&lt;br /&gt; Count(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members}&lt;br /&gt; )&lt;br /&gt;MEMBER [Measures].[Reseller Products] AS&lt;br /&gt; Count(&lt;br /&gt; Filter(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount]) &amp;gt;= &lt;br /&gt; ([Measures].[Internet Sales Amount])&lt;br /&gt; ),&lt;br /&gt; &lt;strong&gt;EXCLUDEEMPTY&lt;br /&gt;&lt;/strong&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Products]),&lt;br /&gt; ([Measures].[Reseller Products])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {[Product].[Category].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1paCCqAjz1kTStKAiJCCCzIYjFdCWCU-4TZiOUwdZzJwjgzKOd2xxT3-JQsphaF2BOt5N6sJLU1ao/2011-11-23%2016-44-23.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;注意：例7-17和7-18结果并没有什么差异，然而，这是因为EXCLUDEEMPTY标志符使用&lt;span style="color: #ff0000;"&gt;当前度量&lt;/span&gt;来计算集中的元组。关于当前度量的概念，有后面的表达式高级介绍中会继续学习。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、DistinctCount函数&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX也提供了一个额外的计数函数，DistinctCount（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146033.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146033.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146033.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Count((Distinct{Set}),ExcludeEmpty)与DistinctCount({Set})相当&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4、使用Generate浏览集合&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Generate（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145526.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145526.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145526.aspx&lt;/a&gt;），其实是计算并集。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-19&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Products] AS&lt;br /&gt; Count(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members}&lt;br /&gt; )&lt;br /&gt;MEMBER [Measures].[Products List] AS&lt;br /&gt; &lt;strong&gt; Generate(&lt;br /&gt; EXISTING {[Product].[Product].[Product].Members},&lt;br /&gt; [Product].[Product].CurrentMember.Name,&lt;br /&gt; " | "&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt;{&lt;br /&gt; ([Measures].[Products]),&lt;br /&gt; ([Measures].[Products List])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt;{[Product].[Subcategory].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;执行结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pBy8WYo6pKwWWJw7IKeLN2itgwQvzQq_DvNmrRYlDDqS2rYkQGpkpYFrMUk47pjoUyoZB9VcPM38/2011-11-23%2017-13-08.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：本文是聚合函数的进阶，介绍了Min和Max函数,Count函数与DistinctCount函数，Generate函数。&lt;/p&gt;&#xD;
&lt;p&gt;下文将继续学习层次结构（Hierarchies）。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2260578.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260578.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/11/23/2260081.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记七：执行聚合（上）</title><summary type="text">导读:本文介绍执行聚合（Aggregation）的进阶内容，包括：1、用Sum和Aggregation执行求和2、用Avg函数计算均值3、用表达式计算均值4、用Stedv计算标准偏差</summary><published>2011-11-23T04:36:00Z</published><updated>2011-11-23T04:36:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260081.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260081.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文介绍&lt;strong&gt;执行聚合（Aggregation）的进阶内容，&lt;/strong&gt;包括：&lt;/p&gt;&#xD;
&lt;p&gt;■1、用Sum和Aggregation执行求和&lt;/p&gt;&#xD;
&lt;p&gt;■2、用Avg函数计算均值&lt;/p&gt;&#xD;
&lt;p&gt;■3、用表达式计算均值&lt;/p&gt;&#xD;
&lt;p&gt;■4、用Stedv计算标准偏差&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、执行求和&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX的聚合函数：&lt;strong&gt;Aggregation&lt;/strong&gt;（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145524.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145524.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145524.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;求和还有一个函数:&lt;strong&gt;Sum（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145484.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145484.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145484.aspx&lt;/a&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们依旧从一个最简单的例子看起&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Transaction Count]),&lt;br /&gt; ([Measures].[Reseller Order Count])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Subcategory].[Subcategory].Members},&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ) + &lt;br /&gt; {([Product].[Subcategory].[All Products])} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;需要说明的是：上例中，[Reseller Sales Amount]代表这个表中Sales Amount字段的数量，[Reseller Transaction Count]代表底层事实表数据记录的数值，[Reseller Order Count]代表底层事实表的订单数。&lt;/p&gt;&#xD;
&lt;p&gt;查询结果如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p5VZgDM3lT0TztmH2Jzqzl-GrFM_Dv_UGbQwZVgL5jmML9HFLgs6q9FZZUgrA5qSD1YxjWXI_f-s/2011-11-23%2010-25-20.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们增加对subcategory进行TopCount 5 求和&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;WITH&lt;br /&gt;MEMBER [Product].[Subcategory].[&lt;span style="color: #ff0000;"&gt;Top &#xD;
5&lt;/span&gt;] AS&lt;br /&gt; Sum(&lt;br /&gt; TopCount(&lt;br /&gt; [Product].[Subcategory].[Subcategory].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ),&lt;br /&gt; ([Measures].CurrentMember)&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Transaction Count]),&lt;br /&gt; ([Measures].[Reseller Order Count])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; TopCount(&lt;br /&gt; [Product].[Subcategory].[Subcategory].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ) +&lt;br /&gt; {&lt;br /&gt; ([Product].[Subcategory].&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;[Top 5]&lt;/strong&gt;&lt;/span&gt;),&lt;br /&gt; ([Product].[Subcategory].[All Products])&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果如下：&lt;br /&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p8OxZ3vet-tf6GJQWqng5nFmsikgpQkgBD_Y8IGTH4EYq-nfBnt-SPKLcNDrTRWoGP2XHBjTdJjg/2011-11-23%2010-31-03.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;前两列是累加的，因而没有问题，最后一列Reseller Order Count不是从五个分类中累加的，而是对所有产品中的子分类的订单进行汇总。很显然，这不是我们想要的结果，此时，我们需要借助于Aggregation函数&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-3&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Product].[Subcategory].[Top 5] AS&lt;br /&gt; &lt;strong&gt; Aggregate&lt;/strong&gt;(&lt;br /&gt; TopCount(&lt;br /&gt; [Product].[Subcategory].[Subcategory].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ),&lt;br /&gt; ([Measures].CurrentMember)&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Transaction Count]),&lt;br /&gt; ([Measures].[Reseller Order Count])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; TopCount(&lt;br /&gt; [Product].[Subcategory].[Subcategory].Members,&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ) +&lt;br /&gt; {&lt;br /&gt; ([Product].[Subcategory].[Top 5]),&lt;br /&gt; ([Product].[Subcategory].[All Products])&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1peBLOwQXGOPmsjwteRSKpdyDANWodBkayc0E9TGsZDpR8DaKFUYjfoRxAgDnltdeVpqIG3-BLuiA/2011-11-23%2010-45-03.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Tips:在求和时，我们通常应该使用Aggregion，而非Sum。当然，这并非绝对。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、用AVG函数计算均值&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX中的求均值函数为Avg（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146067.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146067.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146067.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;我们还是从一个最简单的例子入手：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pOeQ0gy1Ka3xkBZPLrT8LCT8AeYi2Cc_EHFCgTWMW0VZWAQ52-S8GXP7zHKIGp2OUIFHikBFOZ_M/2011-11-23%2010-53-53.png?psid=1" alt="邀月工作室" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们求均值&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS&lt;br /&gt; &lt;strong&gt; Avg(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; },&lt;br /&gt; [Measures].CurrentMember&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;{([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales])}&lt;/strong&gt; +&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pfhXQ-V_VmYpYqJc8qty_spAMOWzciJs5WWXNba_GFOnhd-lxwDS_5rgPkAHMJJgfFr1r6nOMd7k/2011-11-23%2011-07-06.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;加上季度数据&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS&lt;br /&gt; Avg(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; },&lt;br /&gt; [Measures].CurrentMember&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales])} +&lt;br /&gt; &lt;strong&gt;Hierarchize&lt;/strong&gt;(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; } +&lt;br /&gt; {&lt;br /&gt; &lt;strong&gt; [Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:&lt;br /&gt; [Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]&lt;br /&gt;&lt;/strong&gt; }&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pwO2mjEmPz_qQ40iDOM_kUEjBaE2cC2fo_JeuJl1gjL6oSva0Zggz0diw1bk73FkVWDMG-td9a4Y/2011-11-23%2011-13-48.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;加上季度平均：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-7&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH &lt;br /&gt;MEMBER [Date].[Calendar].[CY 2003 Quarterly Avg Reseller Sales] AS&lt;br /&gt; &lt;strong&gt; Avg(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:&lt;br /&gt; [Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]&lt;br /&gt; },&lt;br /&gt; [Measures].CurrentMember&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS&lt;br /&gt; Avg(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; },&lt;br /&gt; [Measures].CurrentMember&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; ([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales]),&lt;br /&gt; &lt;strong&gt; ([Date].[Calendar].[CY 2003 Quarterly Avg Reseller Sales])&lt;br /&gt;&lt;/strong&gt; } +&lt;br /&gt; Hierarchize(&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Month].[January 2003]:&lt;br /&gt; [Date].[Calendar].[Month].[December 2003]&lt;br /&gt; } +&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:&lt;br /&gt; [Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]&lt;br /&gt; }&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img src="https://byfiles.storage.live.com/y1pWIeN6wYxGm6ROtweVUjXkem-yVKYNhJ15o074JP-ND8ofETVFRBF5Xo4av08uSIO4-Eyzatzkzw/2011-11-23%2011-16-54.png?psid=1" alt="" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意：AVG是一个静态函数，那么，如果是动态的表达式求均值，用什么方法?&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、用表达式计算均值&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-8&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Order Count])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar Year].[CY 2001]:&lt;br /&gt; [Date].[Calendar Year].[CY 2004]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pTw1pAG99RUMq2gzcHxuevTJAJOm-cNmcYzKNjG9iz6NWv5SiS26rAZwAQWfG9OhRQQhrXQKatCk/2011-11-23%2011-28-22.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们加上每年的月均值，这是动态计算的：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-9&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;&lt;strong&gt;MEMBER [Measures].[Monthly Avg Reseller Sales Amount] AS&lt;br /&gt; Avg(&lt;br /&gt; &lt;span style="color: #ff0000;"&gt;EXISTING&lt;/span&gt; [Date].[Calendar].[Month].Members,&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt;&lt;/strong&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Order Count]),&lt;br /&gt; &lt;strong&gt;([Measures].[Monthly Avg Reseller Sales Amount])&lt;br /&gt;&lt;/strong&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar Year].[CY 2001]:&lt;br /&gt; [Date].[Calendar Year].[CY 2004]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pQio8SerqY2zLfvLEV2rlrdZ9F8OLAJl_JsAE6exeBI9dnwZVQoHnevbo34sgwK1sJ-tjYnLSWCs/2011-11-23%2011-31-50.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面我们再加上每年的每个订单的销售均值，这也是动态计算的：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-10&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Average Reseller Sales Amount] AS&lt;br /&gt; &lt;strong&gt; ([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;&lt;/strong&gt;MEMBER [Measures].[Monthly Avg Reseller Sales Amount] AS&lt;br /&gt; Avg(&lt;br /&gt; EXISTING [Date].[Calendar].[Month].Members,&lt;br /&gt; [Measures].[Reseller Sales Amount]&lt;br /&gt; )&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Reseller Order Count]),&lt;br /&gt; ([Measures].[Monthly Avg Reseller Sales Amount]),&lt;br /&gt; &lt;strong&gt;([Average Reseller Sales Amount])&lt;/strong&gt;&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar Year].[CY 2001]:&lt;br /&gt; [Date].[Calendar Year].[CY 2004]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pzQBql9rPz_4yZtzje7_rDVYJ40uZtgYwH9TPW6XXZi4A_Qw0kvqfQTAt30-h4NZZw4AHLFm2sD8/2011-11-23%2011-37-43.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4、计算标准偏差&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX使用函数Stdev（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146068.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146068.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146068.aspx&lt;/a&gt;），来计算标准差，它使用无偏差总体公式，而&lt;/p&gt;&#xD;
&lt;p&gt;对应地，StdevP 函数（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146019.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146019.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146019.aspx&lt;/a&gt;）使用有偏差总体公式。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;看一个复杂点的例子：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例7-11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WITH&lt;br /&gt;MEMBER [Measures].[Average Reseller Sales Amount] AS&lt;br /&gt; ([Measures].[Reseller Sales Amount])/ ([Measures].[Reseller Transaction Count])&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;MEMBER [Measures].[Variance Reseller Sales Amount] AS&lt;br /&gt; (&lt;br /&gt; ([Measures].[&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;Squared Reseller Sales Amount&lt;/strong&gt;&lt;/span&gt;]) /&lt;br /&gt; (([Measures].[Reseller Transaction Count])-1)&lt;br /&gt; ) - &lt;br /&gt; (([Measures].[Average Reseller Sales Amount])^2)&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;MEMBER [Measures].[&lt;strong&gt;StDev Reseller Sales Amount&lt;/strong&gt;] AS&lt;br /&gt; ([Measures].[Variance Reseller Sales Amount])^(0.5)&lt;br /&gt; ,FORMAT_STRING="Currency"&lt;br /&gt;SELECT&lt;br /&gt; {&lt;br /&gt; ([Measures].[Average Reseller Sales Amount]),&lt;br /&gt; ([Measures].[Variance Reseller Sales Amount]),&lt;br /&gt; ([Measures].[&lt;strong&gt;StDev Reseller Sales Amount&lt;/strong&gt;])&lt;br /&gt; } ON COLUMNS,&lt;br /&gt; {&lt;br /&gt; [Date].[Calendar Year].[CY 2001]:&lt;br /&gt; [Date].[Calendar Year].[CY 2004]&lt;br /&gt; } ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;注意：本例中Squared Reseller Sales Amount度量调用一个命名计算&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1ptPdm1qSbfYA6_RCQit0e7VDEYn3uofGqaflO_fU1nsyAKo7xw8cngTAEoN2oblxCnS4ghFL0oX4/2011-11-23%2012-28-58.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;执行结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pDHWdhPmshxLwF-JuVwxkoDu_DVVmdnMDHL58ecmxG7mc4q8fT5GF0cJRbDFSQaH_Ae73hmHqNsQ/2011-11-23%2011-48-27.png?psid=1" alt="邀月工作室" /&gt; &#xD;
&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;小结：本文是聚合函数的进阶，介绍了Aggregation与Sum函数的细微区别，用AVG求静态均值和用表达式求动态均值，还有一个计算标准偏差的函数Stdev。&lt;/p&gt;&#xD;
&lt;p&gt;下文将继续学习Min和Max函数及其他聚合相关功能。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2260081.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/11/23/2260081.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/11/22/2258963.html</id><title type="text">《Microsoft SQL Server 2008 MDX Step by Step》学习笔记六：生成复杂的集合（Sets）（下）</title><summary type="text">导读:本文介绍集合（Sets）的进阶内容，本文将包括以下内容：1、Filter函数2、NonEmpty函数3、Set的Union、InterSection和Exception4、Generate和Extract函数</summary><published>2011-11-22T08:16:00Z</published><updated>2011-11-22T08:16:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/11/22/2258963.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/11/22/2258963.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html"&gt;SQL Server 2008中SQL应用系列及BI笔记系列--目录索引&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;导读:本文介绍&lt;strong&gt;集合（Sets）的进阶内容，&lt;/strong&gt;本文将包括以下内容：&lt;/p&gt;&#xD;
&lt;p&gt;■1、Filter函数&lt;/p&gt;&#xD;
&lt;p&gt;■2、NonEmpty函数&lt;/p&gt;&#xD;
&lt;p&gt;■3、Set的Union、InterSection和Exception&lt;/p&gt;&#xD;
&lt;p&gt;■4、Generate和Extract函数&lt;/p&gt;&#xD;
&lt;p&gt;本文所用数据库和所有源码，请到&lt;a href="http://go.microsoft.com/fwlink/?LinkId=139491"&gt;微软官网下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1、使用Filter函数（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms146037.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms146037.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms146037.aspx&lt;/a&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-14&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Internet Sales Amount]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; &lt;strong&gt;Filter( &lt;br /&gt;&lt;/strong&gt; {[Product].[Product].[Product].Members}, &lt;br /&gt; &lt;strong&gt; ([Measures].[Internet Sales Amount]) &amp;gt; ([Measures].[Reseller Sales Amount]) &lt;br /&gt;&lt;/strong&gt; ) ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-15&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Internet Sales Amount]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; &lt;strong&gt; Filter&lt;/strong&gt;( &lt;br /&gt; {[Product].[Product].[Product].Members}, &lt;br /&gt; ([Measures].[Internet Sales Amount]) &amp;gt; ([Measures].[Reseller Sales Amount]) &lt;strong&gt;AND &lt;br /&gt; ( &lt;br /&gt; [Product].[Category].CurrentMember Is [Product].[Category].[Clothing] OR &lt;br /&gt; [Product].[Category].CurrentMember Is [Product].[Category].[Accessories] &lt;br /&gt; ) &lt;br /&gt;&lt;/strong&gt; ) ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-16&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT &lt;br /&gt; { &lt;br /&gt; ([Measures].[Reseller Sales Amount]), &lt;br /&gt; ([Measures].[Internet Sales Amount]) &lt;br /&gt; } ON COLUMNS, &lt;br /&gt; &lt;strong&gt;Filter(&lt;/strong&gt; &lt;br /&gt; {[Product].[Product].[Product].Members}, &lt;br /&gt; ([Measures].[Internet Sales Amount]) &amp;gt; &lt;br /&gt; ([Measures].[Reseller Sales Amount]) AND &lt;br /&gt; &lt;strong&gt;NOT&lt;/strong&gt; ( &lt;br /&gt; [Product].[Category].CurrentMember Is [Product].[Category].[Clothing] OR &lt;br /&gt; [Product].[Category].CurrentMember Is [Product].[Category].[Accessories] &lt;br /&gt; ) &lt;br /&gt; ) ON ROWS &lt;br /&gt;FROM [Step-by-Step] &lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2、使用NonEmpty函数（&lt;a title="http://msdn.microsoft.com/en-us/library/ms145988.aspx" href="http://msdn.microsoft.com/en-us/library/ms145988.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms145988.aspx&lt;/a&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-17&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;NonEmpty&lt;/strong&gt;(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; {([Measures].[Reseller Sales Amount])}&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-18&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;NON EMPTY&lt;/strong&gt; {[Product].[Product].[Product].Members} ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;这两个例子中，使用&lt;span style="color: #ff0000;"&gt;NonEmpty&lt;/span&gt;函数和&lt;span style="color: #ff0000;"&gt;Non &#xD;
Empty&lt;/span&gt;关键字其实效果是一样的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3、组合结果集&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;结果集的组合有三种形式：Union,intersection和Exception&lt;/p&gt;&#xD;
&lt;p&gt;如下图所示：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pAf7Jp2h43hr5zZisol5yBlKOwurZ2G1U8NmL79MqMOJTslprmE3t1fTum0tgoP9lUorZtTpKHpHPIOncqiigcA/2011-11-22%2014-55-29.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看原始例子：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-19:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2004])&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pDdHiBLddl5jJsC6Hb3IXQqNWdaCT_7fSXxG3P7WZaGhhWnm_Jy_ctyq-W35aqv9a-VAGjN3aKe8/2011-11-22%2015-03-34.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看看Union的效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-20:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; Union&lt;/strong&gt;(&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2003])&lt;br /&gt; ),&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2004])&lt;br /&gt; )&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p2O8OiWDf-Dbo2x9wo80dBaeUSJ37i135A861QrQY-h5D8ZQ3QiRJ0YdPiCBqbbFuQz52Aiq8R0Y/2011-11-22%2015-06-53.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用Exception的效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-21:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Except&lt;/strong&gt;(&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2003])&lt;br /&gt; ),&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2004])&lt;br /&gt; )&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p-Jr1apan7Ws9V-4851iMI0S4TN7XRLkaYulvcfAgCAM4S56U3NoV47IvG05XOddM9uWx_F2fWCQ/2011-11-22%2015-10-24.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;InterSection的效果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-22:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Intersect&lt;/strong&gt;(&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2004])&lt;br /&gt; ),&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 10,&lt;br /&gt; ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2003])&lt;br /&gt; )&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pvg9Td3oS5wRvRlbSL4YgVf1Wyy2ovAB1Sp1DRqlqKP5o-o-PSzwbBslf74cGt1sAHlNpWC-m3tQ/2011-11-22%2015-16-01.png?psid=1" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4、Generate和Extract函数&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MDX语言提供了两个强有力的&amp;ldquo;深奥&amp;rdquo;函数&lt;/p&gt;&#xD;
&lt;p&gt;Generate（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145526%28v=SQL.105%29.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145526%28v=SQL.105%29.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145526%28v=SQL.105%29.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;Extract（&lt;a title="http://msdn.microsoft.com/zh-cn/library/ms145980.aspx" href="http://msdn.microsoft.com/zh-cn/library/ms145980.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145980.aspx&lt;/a&gt;）&lt;/p&gt;&#xD;
&lt;p&gt;看原始语句：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-23:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;加上Generate&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-24:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Generate(&lt;br /&gt; {[Product].[Category].[Category].Members},&lt;/strong&gt;&lt;br /&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; )&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;所得的结果与上例相同，&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pzAjn9p6k0j_nJrKMFkEokDcE-t2N9xVT-SSLHhe2JpilLyp60vVvnaCtArpUCKNh8FWsYXK34Gg/2011-11-22%2015-39-34.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;那么，generate起什么作用呢？我们再加上All标志符&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-25:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; Generate(&lt;br /&gt; {[Product].[Category].[Category].Members},&lt;br /&gt;&lt;/strong&gt; TopCount(&lt;br /&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ),&lt;br /&gt; &lt;strong&gt; ALL&lt;br /&gt;&lt;/strong&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p9hbDK6zx9UTmOuJG07QIFvoqefn220roZdnN4BedBt6DQKBhgjboGQD2p3nZ0-bwrZ3vtaWYDnQ/2011-11-22%2015-42-18.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;换句话说，Generate其实是实现了遍历，按每个分类进行TopCount，这个在统计中非常棒。如果老板要统计今年每个月工作量最大的十个员工，那么你应该想到Generate，更进一步，你可以使用Category的hierarchy属性，得到如下结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-26&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt;Generate(&lt;br /&gt; {[Product].[Category].[Category].Members},&lt;/strong&gt;&lt;br /&gt; &lt;strong&gt;{([Product].[Category].CurrentMember)} * &lt;br /&gt;&lt;/strong&gt; TopCount(&lt;br /&gt; &lt;strong&gt; EXISTING&lt;/strong&gt; {[Product].[Product].[Product].Members},&lt;br /&gt; 5,&lt;br /&gt; ([Measures].[Reseller Sales Amount])&lt;br /&gt; ),&lt;br /&gt; ALL&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;结果：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pstgjhKe5XwmnZB4jeGEpDszbKR8tBKeBXpKlpt-0PmLOoV8AeQvzMreGh4SPQmn4XrvzzfdvXBU/2011-11-22%2015-54-05.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Extract的用途，先看下面的例子，使用Filter&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-27&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; Filter(&lt;br /&gt; {[Product].[Product].[Product].Members} * &lt;br /&gt; {[Date].[Calendar].[Month].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount])&amp;gt;160000&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1p-y4zn-fb-0fvOXSpoXmxCSurPSbC61N_dHK6Szp-Sej4BjlYYByxyW4zGk2KWR3huzHoBSDsP_A/2011-11-22%2016-02-28.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用Extract的例子&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;例6-28&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT&lt;br /&gt; {([Measures].[Reseller Sales Amount])} ON COLUMNS,&lt;br /&gt; &lt;strong&gt; Extract(&lt;br /&gt;&lt;/strong&gt; Filter(&lt;br /&gt; {[Product].[Product].[Product].Members} * &lt;br /&gt; {[Date].[Calendar].[Month].Members},&lt;br /&gt; ([Measures].[Reseller Sales Amount])&amp;gt;160000&lt;br /&gt; ),&lt;br /&gt; [Product].[Product]&lt;br /&gt; ) ON ROWS&lt;br /&gt;FROM [Step-by-Step]&lt;br /&gt;;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img title="邀月工作室" src="https://byfiles.storage.live.com/y1pPfznlwccWaEh77V4UMerXjElapnbFKkCqa8QYApL0RRBHnFJL541NElmKJ0vncL6l0lXxoUTjU0/2011-11-22%2016-00-34.png?psid=1" alt="邀月工作室" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;请注意：Extract在此处相当于使用了distinct。&lt;/p&gt;&#xD;
&lt;p&gt;小结：本文是集合（Sets）的进阶，介绍了几个常用的函数如Filter和NonEmpty，Generate和Extract，集的组合方式如Union、InterSection和Exception。&lt;/p&gt;&#xD;
&lt;p&gt;下文将继续学习执行Aggregation的相关内容。&lt;/p&gt;&#xD;
&lt;p&gt;参考资源：&lt;/p&gt;&#xD;
&lt;p&gt;1、MDX官方教程（&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms145506.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms145506.aspx&lt;/a&gt;）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2258963.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/11/22/2258963.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/downmoon/archive/2011/10/26/2224767.html</id><title type="text">Windows Install Clean Up－windows安装卸载终极利刃</title><summary type="text">当你因为office 20XX、sql server 20XX、Vistual Studio 20XX、MVC X.X、MSN XX.XX等安装而反复出错时，你可能会感到绝望而重装系统。　　殊不知，有一款微软提供的超级利器--Windows Install Clean Up，就是专门处理此类Case的，正如其名，它的功能主要是清除所安装软件的注册信息，或上次安装的失败残余痕迹，从而使该软件下一次安装时，系统好像第一次安装一样。</summary><published>2011-10-26T01:52:00Z</published><updated>2011-10-26T01:52:00Z</updated><author><name>邀月</name><uri>http://www.cnblogs.com/downmoon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/downmoon/archive/2011/10/26/2224767.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/downmoon/archive/2011/10/26/2224767.html"/><content type="html">&lt;p&gt;当你因为office 20XX、sql server 20XX、Vistual Studio 20XX、MVC X.X、MSN XX.XX等安装而反复出错时，你可能会感到绝望而重装系统。&lt;/p&gt;&#xD;
&lt;p&gt;殊不知，有一款微软提供的超级利器--Windows Install Clean Up，就是专门处理此类Case的，正如其名，它的功能主要是清除所安装软件的注册信息，或上次安装的失败残余痕迹，从而使该软件下一次安装时，系统好像第一次安装一样。&lt;/p&gt;&#xD;
&lt;p&gt;它最初用于清除windows office 2003/2007中的残留安装，其实可以用于绝大多数windows平台的应用软件，并且只有300多Ｋ，可谓短小精悍！&lt;/p&gt;&#xD;
&lt;p&gt;你可以从google下载最新版本，邀月在本文末尾也提供下载。&lt;/p&gt;&#xD;
&lt;p&gt;使用方法很简单，下载后安装，在开始－程序，打开Windows Install Clean Up，如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="https://byfiles.storage.live.com/y1pu686SAVEjh8PiD1ng39Va0_vaQ1-DdL4YBYxS2wv9ZobDw4yansz8a1Y_MC6rtKjViQknS344qE/2011-10-26%209-41-36.png?psid=1" alt="邀月工作室" width="536" height="559" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;选择你想要卸载的项，点击下面的&amp;ldquo;Remove&amp;rdquo;，即可。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下载地址一：&lt;a target="_blank" href="http://files.cnblogs.com/downmoon/msicuu2.zip"&gt;下载&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下载地址二：&lt;a target="_blank" href="http://download.csdn.net/detail/downmoon/3719802"&gt;这儿&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/downmoon/aggbug/2224767.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/downmoon/archive/2011/10/26/2224767.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
