gpt4 book ai didi

sql-server-2008-r2 - SSRS 2008 - 日期范围的多个分组

转载 作者:行者123 更新时间:2023-12-04 07:58:04 26 4
gpt4 key购买 nike

表中的一条记录包含一系列有效日期,比如说:*tbl1.start_date* 和 *tbl1.end_date*。因此,为确保我获得在特定日期范围内有效的所有记录,选择逻辑为:<...> WHERE end_date >= @dtFrom AND start_date < @dtTo (SQL语句中使用的@dtTo参数实际上是报表中使用的*@prmDt_To*参数计算出的次日)。

现在在报告中,我需要计算指定数据范围内每一天的记录数,并包括没有有效记录的天数(如果有的话)。因此,检索到的记录可能会在不同的几天内进行计数。我可以使用数据集中的递归 CTE 相对轻松地完成此操作,但我的经验法则是避免对 SQL 数据库造成不必要的负载,而是仅返回必要的原始数据并让报表引擎处理分组。那么有没有办法在 SSRS 中执行此操作?

谢谢,谢尔盖

最佳答案

您可以使用自定义代码在 SSRS 中执行某些操作,但我建议不要这样做。执行此操作的位置在数据集中。 SSRS 并非旨在填充数据集中不存在的组。这听起来像您正在尝试做的事情:SSRS 需要为每个日期创建组,无论该日期是否在数据集中。

如果您的数据库中没有数字或日期表,我会创建一个递归 CTE,其中包含您提到的您感兴趣的范围内的每个日期的记录。然后将其外部连接到您的表并使用 COUNT(tbl1.start_date) 找到合适的日期。这对 SQL Server 来说应该不会太痛苦。

如果您真的需要避免 CTE,那么我会创建一个日期或数字表来生成您范围内的日期。

关于sql-server-2008-r2 - SSRS 2008 - 日期范围的多个分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15252858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com