coy 的程序人生

有鸟止南方之阜,三年不翅,不飞不鸣
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

环境:SQL Server 2005 Analysis Services

最近在看微软自带的Adventure Works DW Analysis Services工程,想看看它的KPI是如何定义的,第一个KPI是[Growth in Customer Base],对应的是一个也叫[Growth in Customer Base]的calculation。这个calculation对比date维度CurrentMember和前一个Member的客户数量,结果为一百分比,如2004年5月比2004年4客户数量增加了20%。[Growth in Customer Base]的KPI则是关于这个calculation的指标定义,value, status, trend的定义都一目了然,没有任何问题。

可是,当我切换到KPI的Browser View的时候,不管我怎么选择维度,比如选择date.Fiscal层次里的2004年5月,下面显示的KPI value始终显示NA。

 

我查看[Growth in Customer Base]的calculation定义,只有当CurrentMember的Level编号为0的时候才返回"NA",而Year的Level为1,Semester为2,Quarter为3,Month为4,也就是说只要你指定了date.Fiscal的层次,就不可能出现Level 为0的情况,除非没有选择时间维度(当然,这个calculation本来就是基于时间的比较)。

在百思不得其解的时候上google查询,原来这是一个官方承认的Analysis Services KPI Browser的bug,它不识别CurrentMember,所以[Date].[Fiscal].CurrentMember.Level.Ordinal永远等于0,这就使得calculation永远返回"NA"。微软建议不要使用这个自带的KPI browser,而使用其他的KPI 客户端工具如Excel2007。

https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=257885

  

 

 

这是微软BI的示范项目Adventure Works DW,定义了那么多很不错的KPI,而第一个就不能正确浏览,真不知道他们怎么测试的。