SQL 递归查询以查找日期计数

问题描述 投票:0回答:0

我正在寻找 SQL 查询以根据已经存在的日期表获得全年(日期明智)的计数。

请在下表、代码和我要找的结果中找到。

Table_1

Pad name Well_count Rig_release_date
------------------------------------
Pad A       1       1/28/2023
Pad B       4       5/4/2023
Pad C       7       6/10/2023
Pad D       3       4/10/2023

Table_1 image

我要找的代码

Date    Well Count
5/1/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/1/2023
5/2/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/2/2023
5/3/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/3/2023
5/4/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/4/2024
5/5/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/5/2024
5/6/2023    Select sum(Well_count) from Table_1 where Rig_release_date <  5/6/2024
.
.

Code I am looking for image

结果

Date    Well Count
-------------------
5/1/2023    4
5/2/2023    4
5/3/2023    4
5/4/2023    4
5/5/2023    8
5/6/2023    8

Result image

我不确定如何在 SSMS 中执行此操作,我是否需要使用递归 CTE 或滑动窗口函数?

到目前为止,我已经构建了这段代码来获取递归日期

WITH cte_numbers AS
(
    SELECT 
        @SD as Date_
        --@SD as n , (sum(Total_wells) from duc_schedule where Rig_release_date < n)

    UNION ALL

    SELECT    
        DATEADD(day, 1, Date_) 
    FROM    
        cte_numbers
    WHERE  
        Date_ < @ED
)
SELECT 
    *
FROM 
    cte_numbers
OPTION (maxrecursion 400);
sql-server database recursion ssms common-table-expression
© www.soinside.com 2019 - 2024. All rights reserved.