如何获取两个日期之间的数据。我使用了以下表达式:
(
{[campaign].[campaign start date]:[campaign].[campaign end date]},
[Measures].[sales]
)
但它给出了 null 作为结果。
如果您发布了您正在使用的完整 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])