我正在创建一个SSRS报告,我希望得到在特定日期范围内的特定用户的开放情况,如下所示。
。
我有3个参数用户,开始日期和结束日期
我需要在开始日期和结束日期之间使用c_date。
如果用户输入开始日期为2019-01-01,结束日期为2019-31-01,则我希望显示具有打开计数的User1。
对于0~5天的User1和有6~11天开放计数的user2也是一样的。
预期产出:
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例未结病例。
我能得到这样的结果吗?
发布于 2019-12-05 13:37:21
如果可能的话,您可能应该在dataset查询中这样做。用例和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(从内存中完成,所以可能不是完美的)
在报表中,可以使用行组“年龄”上的用户作为列组,然后只需对任何列进行计数,就可以给出记录的实际计数。
您也可以使用SQL进行计数,但我不确定是否需要其他细节。
发布于 2019-12-05 08:44:52
考虑到您有两个列,我的方法是有3个参数,一个用于用户,另一个用于日期和日期。
现在,选择这些参数,将它们添加到dataset查询中,作为filtered,您也可以在ssrs数据集上应用筛选器,但我更希望在查询级别上对数据进行过滤并只加载req 1。
然后,您可以应用基于用户的求和和分组,并使用Ssrs tablix来获得所需的结果。
https://reportsyouneed.com/ssrs-tip-put-parameters-in-your-query-not-your-filter/
https://stackoverflow.com/questions/59190345
复制相似问题