【问题标题】:Get open cases counts for particular user in specific date range获取特定日期范围内特定用户的未结案件数
【发布时间】:2019-12-05 07:39:12
【问题描述】:

我正在创建一个 SSRS 报告,我想在特定日期范围内为特定用户获取未结案例,如下所示。

  1. 我从那里有一个名为 User 的表,我正在获取用户信息 (User1,User2,User3)。

  2. 我在描述表下的表管理中有未结案例。

  3. 我在类表中有 c_date 列。

我有 3 个参数 user,startdate 和 enddate

而且我需要在 startdate 和 enddate 之间使用 c_date。

如果用户输入 startdate 为 2019-01-01,enddate 输入为 2019-31-01,那么我想显示打开计数的 User1。

对于 0-5 天和开放计数为 6-11 天的用户 1,用户 2 也是如此。

预期输出:

User    0-5days  6-11days  
----   -------    -------   
User1    2         1                 
User2    1         4                  
User3    5         0                   

说明:用户 1 在 0-5 天之间有 2 个未结案件意味着当我进入日期范围时考虑 2019-01-01 和 2019-31-01 所以我在前 0-5 天(2019-01)之间有 2 个未结案件-01 和 2019-05-01)以及未来 6-11 天(2019-06-01 和 2019-11-01)之间的 1 个未结案件等。

我能得到这样的结果吗?

【问题讨论】:

  • 您提到的基本要求可以实现,但在您当前的示例中,您的列将是动态的,即它们将是 0-5,然后是 6-11,然后是 12-18,然后是 19-24,依此类推或者它们将始终为 2 列,分别为 0-5 和 6-11?简而言之,您的列的标准是什么?
  • 是的,实际上我有长达 28 天的列,但我只要求 2 列
  • 样本数据和所需结果作为文本表格会有所帮助。
  • 您好,我已经提到了使用的表格和数据。希望有帮助

标签: sql sql-server stored-procedures reporting-services ssrs-2012


【解决方案1】:

如果可能,您应该在数据集查询中执行此操作。使用 CASE 和 DATEDIFF 对您的数据进行分组,例如

SELECT
    [User],
    [AnyOtherColumns],
    CASE
        WHEN DATEDIFF(d, @startdate, c_date) BETWEEN 0 AND 5 THEN '0-5'
        WHEN DATEDIFF(d, @startdate, c_date) BETWEEN 6 AND 11 THEN '6-11'
        ELSE 'older'
    END AS [Age]
    FROM myTable
    WHERE [User] = @user
        AND c_date BETWEEN @startdate AND @enddate

(凭记忆完成,可能并不完美)

在您的报告中,您可以在您的行组中使用 [User],将 [Age] 作为您的列组,然后简单地计算任何列来为您提供实际的记录数。

您也可以在 SQL 中进行计数,但我不确定您是否需要其他详细信息。

【讨论】:

    【解决方案2】:

    考虑到您有两列, 我的方法是 有 3 个参数,一个用于用户,另一个用于 To 和 from 日期。

    现在选择这些参数,将它们作为过滤器添加到您的数据集查询中 请注意,您也可以在 ssrs 数据集上应用过滤器,但我更喜欢在查询级别,这样您就可以过滤数据并仅加载请求一个。

    然后,您可以根据用户应用求和和分组,并使用 Ssrs tablix 来获得所需的结果。

    https://www.mssqltips.com/sqlservertip/3453/sql-server-reporting-services-reports-with-optional-query-parameters/

    https://reportsyouneed.com/ssrs-tip-put-parameters-in-your-query-not-your-filter/

    【讨论】:

    • 是的,我们有 3 个参数,您能否提供查询条件,我如何获得每个日期范围的未结案例?
    • 我已经用几个外部链接更新了答案,这将使您了解如何使用参数和查询。
    • 您好,我知道如何使用参数和 ssrs 报告,但在此之前我需要使用具有此条件的存储过程。我需要查询来获得所需的输出。你能帮忙吗
    猜你喜欢
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多