MDX 表达式 小于当前日期才显示订货量

0
cube 已做好,但在展现报表时存在大于当前日期的订单,部分报表不想显示当前日期之后的订单数据,需要使用mdx语句做限制,一般条件 :iif([店仓维度.经营渠道] IS [自营],[Measures].[销售量],0) 类似这种的是可以生效,但换成日期层级就不生效了。
已邀请:
1

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-01-12 回答

首先 你的那个 IIF和是不是显示当前日期以前的数据完全没有关系。你只是做了类别的判断,当你的结果集需要跟日期维度进行交互的时候,当然没有结果

大部分的东西都不用改,写MDX语句的话 你可以在你的MDX语句最后加一行比如:
WHERE
(
NULL : STRTOMEMBER("[Date].[Date].&[" + FORMAT(NOW(), "yyyyMMdd") + "]")
)
这个 STRTOMEMBER的意思是 拼了一个当前日期的维度出来,然后将它转成了你的真是维度
那么NULL: STRTOMEMBER()的意思 就是 从 你的基本数据比如 你表里是2000年开始计算销售量。
那么从 2000年--现在2015年1月X日,所有数据.

具体的语句类似如下:
SELECT
{
[Measures].[Internet Sales Amount]
} ON 0,
NON EMPTY
{
([Date].[Calendar].[Date].Members, [Product].[Category].[Category].Members)
*
([Product].[Product].[Product].Members)
} ON 1
FROM [Adventure Works]
WHERE
(
NULL : STRTOMEMBER("[Date].[Date].&[" + FORMAT(NOW(), "yyyyMMdd") + "]")
)

结果图:


1.png
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-01-12 回答

补充说明一下,可以看到我设置当前电脑的日期为 2007年1月12号

2.png


那么我这里显示出来的数据 最大的就是 2007年1月12号,不会出现 1月13号的


44.png

要回复问题请先登录注册