SSAS中命名集(SET)的使用
之前工作中使用Excel Services展示OLAP报表时,日期(报表要求展示最近三天)需要每天去更新Excel,非常麻烦,而且还经常忘记更新。 后来,终于找到了解决方法:在命名集中添加SET计算来替代日期的筛选。
CREATE SET CURRENTCUBE.[最近一天] AS TAIL(NONEMPTY([Time].[日期].MEMBERS),1);
CREATE SET CURRENTCUBE.[過去三天] AS {STRTOMEMBER("[Time].[日期]."+FORMAT((NOW()-3),"[yyyy/MM/dd]")): STRTOMEMBER("[Time].[日期]."+ FORMAT((NOW()-1),"[yyyy/MM/dd]"))};
CREATE SET CURRENTCUBE.[最近一周] AS {STRTOMEMBER("[Time].[年-週-日期].[日期]."+ FORMAT((NOW()-7),"[yyyy/MM/dd]")+".PARENT"):STRTOMEMBER("[Time].[年-週-日期].[日期]."+ FORMAT(NOW(),"[yyyy/MM/dd]")+".PARENT")};
这样,做报表时只要把这些SET拖拉进去替换日期维,再把数据连接设置为"自动更新",这样在Excel Services报表中,不用手动更新,也能看到最新的资料。