SSRS 2008 - 为什么某些月份在矩阵中没有返回结果但结果显示在 SQL 查询窗格中?

SSRS 2008 - Why are certain months returning no results in matrix but results showing in SQL query pane?

我进行了搜索,但找不到任何其他与此类似的查询。我有一个带有月份和年份参数的查询,并将计数汇总到一个矩阵中。从 1 月到 9 月,包括 2018 年,一切都运行良好,但是当我在 11 月或 2018 年 12 月和 2019 年 1 月测试它时,我在查询窗格中得到结果,但矩阵中没有任何结果(甚至没有零)。
我查询中的 where 子句是: (编辑于 2018 年 7 月 2 日以显示更新的 YYYY)

WHERE        (DATEPART(MM, createdon) = @selectedMonth) AND (DATEPART(YYYY, createdon) = @selectedYear) OR
                         (DATEPART(MM, sb_provisionalstatuschangedate) = @selectedMonth) AND (DATEPART(YYYY, sb_provisionalstatuschangedate) = @selectedYear) OR
                         (DATEPART(MM, sb_confirmedstatuschangedate) = @selectedMonth) AND (DATEPART(YYYY, sb_confirmedstatuschangedate) = @selectedYear) OR
                         (sb_status = 3) AND (statecode = 1) AND (DATEPART(MM, sb_eventdate) = @selectedMonth) AND (DATEPART(YYYY, sb_eventdate) = @selectedYear) OR
                         (statecode = 2) AND (DATEPART(MM, actualclosedate) = @selectedMonth) AND (DATEPART(YYYY, actualclosedate) = @selectedYear)
ORDER BY sb_eventdate, BookingName

我已经在 @month 参数中设置了 1 到 12 个月的可用值,并在 @year 参数中设置了 2018 年到 2022 年(含)的可用值。

表达式之一的示例(第一列):

=Sum(iiF(DatePart("m", Fields!createdon.Value) = Parameters!selectedMonth.Value And DatePart("yyyy", Fields!createdon.Value) = Parameters!selectedYear.Value, 1, 0))

我测试了 2018 年 1 月用户选择的所有内容并导出结果并统计结果应该是什么,一切都是正确的。

由于我的很多测试都是针对 1 月 18 日的数据进行的,所以我还测试了 2018 年的所有其他月份。一切顺利,直到我到了 11 月和 12 月,我没有得到任何结果——甚至没有零。

这通常表示数据有问题,因此没有结果,所以我 运行 在 SQL 查询窗格中查询(插入 12,其中查询显示 @Month 和 2018,其中查询显示 @年份,我导出并检查 - (显示的前 10 个结果应该全部计算在 'cancelled' 下的矩阵中)。所有列都有结果。如果没有结果,我仍然会期望见零。

有谁能解释为什么我在 12 月 18 日和 1 月 19 日的 11 月没有收到任何东西?

试试这个:在您的 where 子句 "DATEPART(YY" 中将其修改为 "DATEPART(YYYY"

在您查询的第 4 行: (DATEPART(MM, sb_eventdate) = 2018)

这应该是: (DATEPART(YYYY, sb_eventdate) = 2018)

我已经设法解决了问题,那就是已经创建了另一个数据库实例,它现在已成为主数据库,而曾经是主数据库的那个现在仅供紧急使用 - 显然是这样不持有相同的数据。我在 SQL 查询窗格中查询一个实例,在 visual studio 中查询另一个实例。如果我们的沟通更好,就不会发生这样的事情,我很抱歉浪费你的时间。