我有一份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个结果。
我知道如何强制参数只获取多维数据集中的现有值。但我需要能够选择所有日期。有没有其他方法可以使这个表达式返回所需的结果?
感谢任何帮助。
答案 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]