首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取特定日期范围内特定用户的打开用例计数

获取特定日期范围内特定用户的打开用例计数
EN

Stack Overflow用户
提问于 2019-12-05 07:39:12
回答 2查看 66关注 0票数 0

我正在创建一个SSRS报告,我希望得到在特定日期范围内的特定用户的开放情况,如下所示。

  1. --我有一个名为User的表--我从那里获得用户信息(User1,User2,User3)。
  2. --在description表下的表管理中有打开的案例。在类表中有c_date列。

我有3个参数用户,开始日期和结束日期

我需要在开始日期和结束日期之间使用c_date。

如果用户输入开始日期为2019-01-01,结束日期为2019-31-01,则我希望显示具有打开计数的User1。

对于0~5天的User1和有6~11天开放计数的user2也是一样的。

预期产出:

代码语言:javascript
复制
User    0-5days  6-11days  
----   -------    -------   
User1    2         1                 
User2    1         4                  
User3    5         0                   

说明:用户1有两个在0-5天之间的未结病例,这意味着当我进入日期范围时,考虑2019-01-01和2019-31-01,所以在头0-5天(2019-01-01和2019-05-01)之间有2例未结病例,在接下来的6-11天(2019-06-01和2019-11-01)之间有1例未结病例。

我能得到这样的结果吗?

EN

回答 2

Stack Overflow用户

发布于 2019-12-05 13:37:21

如果可能的话,您可能应该在dataset查询中这样做。用例和DATEDIFF将数据分组如下

代码语言:javascript
复制
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

(从内存中完成,所以可能不是完美的)

在报表中,可以使用行组“年龄”上的用户作为列组,然后只需对任何列进行计数,就可以给出记录的实际计数。

您也可以使用SQL进行计数,但我不确定是否需要其他细节。

票数 1
EN

Stack Overflow用户

发布于 2019-12-05 08:44:52

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

现在,选择这些参数,将它们添加到dataset查询中,作为filtered,您也可以在ssrs数据集上应用筛选器,但我更希望在查询级别上对数据进行过滤并只加载req 1。

然后,您可以应用基于用户的求和和分组,并使用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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59190345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档