我正在寻找 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
我要找的代码
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
.
.
结果
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
我不确定如何在 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);