【问题标题】:One dataset controls other in SSRS *.rdl?一个数据集控制 SSRS *.rdl 中的其他数据集?
【发布时间】:2019-10-28 04:29:08
【问题描述】:

我在我的 *.rdl 中看到了一个神秘的行为。我定义了 2 个数据集。 我定义了 4 个参数,

  • StartDate,EndDate, companyid, sitecode

对于这两个数据集,我都定义了一个选择查询。

  • DatasetA 使用 @Enddate
    • DatasetB 没有使用它(它使用,startdate,companyid,sitecode)

我也想从 datasetA 中删除 @EndDate。所以,我使用 @startdate 参数来定义 enddate 并在我的 sql 查询中使用它。 例如:

DECLARE @eDate AS date =EOMonth(@StartDate)

但是在摆脱这个之后,@EndDate,我的第二个数据检索到的数据更少。(即:如果它应该返回 9 月和 10 月的数据,现在它只返回 9 月的数据) 我到处检查了 rdl、行组/列组,但没有任何像这样定义的过滤器。只有当我从第一个数据集更改 @EndDate 参数时,我才会看到这种行为。

例如: 声明 @eDate 为日期 =EOMonth(@StartDate)

Select ..
Where date>=@StartDate AND date<=@Enddate to date<=@eDate

有没有我们使用参数作为过滤检查的地方?如果是这样,我该如何检查它,它在 *.rdl 中的哪些位置使用过?

【问题讨论】:

  • EOMonth(@StartDate) 是包含@StartDate 的月末。怎么可能从下个月开始?
  • @WolfgangKais 我已经发布了答案。我自己想通了。抱歉,可能是我的问题不清楚。

标签: reporting-services ssrs-2008 ssrs-2012 ssrs-tablix


【解决方案1】:

我发现了这个问题。这是由于我在两个数据集之间使用的查找功能。因此,当 dataset2 尝试检索正确的行数时,dataset1 正在控制它,因为它没有返回该日期的行。 例如:dataset1 返回 9 月的数据,而 dataset 2 返回 9 月+10 月的数据。 由于查找功能,Dataset1 控制了 dataset2 的 10 月份数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2021-12-11
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多