MDX中的日期范围问题,缺少日期

时间:2012-11-17 19:11:26

标签: sql-server-2008 reporting-services ssrs-2008 ssas mdx

我有一份SSRS报告,使用以下表达式进行过滤:

="{[Claim Cheque].[Cheque Date].&[" + format(Parameters!StartDate.Value, "yyyy-MM-dd") + "T00:00:00]:[Claim Cheque].[Cheque Date].&[" + format(Parameters!EndDate.Value, "yyyy-MM-dd") + "T00:00:00]}"

工作正常。我的问题是我每天都没有检查,这使得查询没有返回任何结果。作为一个例子,我选择11月1日至20日的日期范围。我在14日和15日有支票,但不是20日。我会以这种方式错过第14和第15个结果。

我知道如何强制参数只获取多维数据集中的现有值。但我需要能够选择所有日期。有没有其他方法可以使这个表达式返回所需的结果?

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

在我看来,您只需为[检查日期]设置单独的日期维度,而不是链接回完全填充的主日期维度。查看在AdventureWorks示例中完成Order Date和Ship Date维度的方式。这里很好地解释了它们:Role-playing dimensions

我能够针对那些数据运行像您这样的MDX查询,其中在范围的开始和结束日期没有交易:

Select 
[Measures].[Order Count] on 0,
[Sales Channel].&[Reseller] on 1
From [Adventure Works]
Where {[Ship Date].[Fiscal].[Date].&[20060701]:[Ship Date].[Fiscal].[Date].&[20060710]}

Select 
[Measures].[Order Count] on 0,
([Sales Channel].&[Reseller],
{[Ship Date].[Fiscal].[Date].&[20060701]:[Ship Date].[Fiscal].[Date].&[20060710]}) on 1
From [Adventure Works]