计算成员的表达式

时间:2013-01-10 07:22:23

标签: ssas mdx

如何获取两个日期之间的数据。我使用了以下表达式:

(
   {[campaign].[campaign start date]:[campaign].[campaign end date]},
   [Measures].[sales]
 )

但是结果为null。

1 个答案:

答案 0 :(得分:1)

如果您发布了正在使用的完整MDX,这将有所帮助。

与此同时,我猜你需要将时间维度放入过滤器(WHERE),并将度量放到行或列上,并使用另一个维度(只是它的顶级成员)来返回单个结果单元格:

SELECT {[Some other dimension].defaultMember} ON ROWS,
{[Measures].[sales]} ON COLUMNS
FROM [MyCube]
WHERE (AGGREGATE({[campaign].[campaign start date]:[campaign].[campaign end date]}))

由于WHERE子句仅接受元组,因此您必须使用AGGREGATE将日期范围从一个项目压缩为单个项目。

您还可以尝试创建计算成员并对其进行过滤:

WITH MEMBER [Actual Time].[6th to 30th Nov 2006] 
AS 'Aggregate([Actual Time].[All Actual Time].[2006].[December].[6 December 2006] : [Actual Time].[All Actual Time].[2006].[November].[30 November 2006])', 
SOLVE_ORDER=0 
SELECT {whatever} ON ROWS,
{[Measures].[sales]} ON COLUMNS
FROM [MyCube]
WHERE ([Actual Time].[6th to 30th Nov 2006])