【问题标题】:Date range issue in MDX with missing datesMDX 中的日期范围问题,缺少日期
【发布时间】:2012-11-17 19:11:26
【问题描述】:

我有一个使用以下表达式过滤的 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 的结果。

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

感谢任何帮助。

【问题讨论】:

  • “被过滤”是什么意思?数据集过滤器? “我会错过第 14 次和第 15 次结果”是什么意思?
  • 如果问题不清楚,我很抱歉,迈克。我在 SSRS 报告的数据集中使用上面的表达式作为参数值。我在数据集查询中将参数用作... SELECT(STRTOSET(@myParameter))...Parameters!StartDateParameters!EndDate 是报告参数。关于报告结果中的缺失值,我的问题是我手动创建了一个不存在的 Parameters!EndDate = 11 月 20 日的 MDX 集。

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


【解决方案1】:

在我看来,您有一个仅用于 [支票日期] 的单独日期维度,而不是链接回完全填充的主日期维度。查看 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]

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多