我们有一个包含以下值的表:
项目名称 数量 F 位 日期
项目 1 100 2011 年 1 月 1 日
项目 2 150 2011 年 1 月 5 日
项目 3 200 2011 年 1 月 14 日
项目 4 250 2011 年 1 月 20 日
项目 5 1000 2/1/2011
在 MDX 查询中,我们需要根据日期范围过滤数据。假设我们需要获取日期范围 01/01/2011 到 01/31/2011 的项目及其数量,我们使用以下 MDX 查询:
SELECT
NON Empty
{[Final Report View For Scorecards].[F Bit Date].Children} ON ROWS,
NON Empty
{[Measures].[Qty]} ON COLUMNS
FROM
(
SELECT
(
{[Final Report View For Scorecards].[F Bit Date].&[2011-01-01T00:00:00] :
[Final Report View For Scorecards].[F Bit Date].&[2011-01-31T00:00:00]}
) ON COLUMNS
FROM [FinalReportView]
)
此处,当 FromDate 和 ToDate 参数作为 01/01/2011 和 01/20/2011 传递时,将正确检索项目 1 到 4 及其各自的数量。但是,当 FromDate 和 ToDate 作为 01/01/2011 和 01/31/2011(或)01/01/2011 和 01/19/2011 传递时,它甚至返回错误的 Item5 的值。即,只有当表中可用的确切日期作为参数传递时,它才会返回正确的结果。但是,当传递了表中不可用的日期时,将返回整个数据集。
使用“过滤器”时也是如此。
任何指向这个问题的指针?