一个关于查询动态时间的MDX语句
目的分析:在特定的查询展示环境下,如要利用BSM发布KPI指标的信息,由于登陆门户时需要每天实时的数据信息,但是又不需要另外开发程序来辅助生成, 只能通过MDX语句来查询,通过查找mdx中的函数,没有找到可以动态去时间的相关函数。在MDX里也不能像t-sql那样使用DECLARE语句来声明 变量,需要使用WITH来定义一个计算成员。第一行便是声明了一个mydate的计算成员。注意在MDX里的变量和标量和在SQL里一样,是弱类型的。但 当你声明一个字符串的变量的话应该用双引号扩住,而不是单引号,而你要声明一个日期型的变量的话不用引号,比如声明一个表示2007年8月的日期型变量用 “WITH MEMBER mydate as 200708”就可以了。
MDX里可以把一个字符串表达式转换成一个成员或者集的引用,StrToMember函数用来完成讲字符串转换成成员,然后这个字符串你可以用报表参数或 者内部计算成员等来拼接而成,从而达到动态查询的效果。MDX里并没有很多的日期和文本处理函数,但它却可以用大部分的VBS函数和EXCEL表达式,实 际上是调用的Micrisoft.VisualBasic命名空间下的相关类,以及其它的一些对象。比如在MDX里获取当前时间,就不能用 getdate(),而用now()或者date()。而dateadd函数的里的格式字符串,如yyyy,m,d等字符串要用单引号或双引号扩住,否则 这个函数执行不过去的。注意在t-sql里是不用加引号的,如SELECT DATEADD(mm, 2, getdate())。虽然MDX是弱类型的,但有时候也需要强制类型转换,因为mydate变量声明的时候是日期类型,但后面要用它拼接成一个成员的字
关于查询动态时间的MDX语句
最新推荐文章于 2019-02-28 13:36:00 发布
本文介绍了如何在MDX中处理动态时间查询,特别是在没有可用的动态时间函数的情况下。通过使用WITH语句定义计算成员,结合StrToMember函数和日期处理,实现了如统计昨日、最近三个月销售额等动态查询。示例代码展示了如何将当前日期减一得到昨日的日期,并将其转化为成员表达式进行查询。
摘要由CSDN通过智能技术生成