0

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

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

但它给出了 null 作为结果。

4

1 回答 1

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])
于 2013-01-10T08:57:21.380 回答