除非你有一张日历表里面标注了节假日
另外数据库不同sql也不同
---------------
模拟测试SQL
with tablea as (
select '2022-01-01' [rq]
union all
select '2022-01-05' [rq]
),
t_WorkCalendar_SZ as (
select '2022-01-01' [rq],'T' [FLAG]----FLAG='T' 表示为节假日
UNION ALL
select '2022-01-02' [rq],'T' [FLAG]
UNION ALL
select '2022-01-03' [rq],'F' [FLAG]
UNION ALL
select '2022-01-04' [rq],'T' [FLAG]
UNION ALL
select '2022-01-05' [rq],'F' [FLAG]
UNION ALL
select '2022-01-06' [rq],'F' [FLAG]
UNION ALL
select '2022-01-07' [rq],'F' [FLAG]
UNION ALL
select '2022-01-08' [rq],'F' [FLAG]
UNION ALL
select '2022-01-09' [rq],'F' [FLAG]
UNION ALL
select '2022-01-10' [rq],'T' [FLAG]
UNION ALL
select '2022-01-11' [rq],'T' [FLAG]
UNION ALL
select '2022-01-12' [rq],'F' [FLAG]
UNION ALL
select '2022-01-13' [rq],'F' [FLAG]
UNION ALL
select '2022-01-14' [rq],'F' [FLAG]
UNION ALL
select '2022-01-15' [rq],'F' [FLAG]
UNION ALL
select '2022-01-16' [rq],'F' [FLAG]
UNION ALL
select '2022-01-17' [rq],'T' [FLAG]
UNION ALL
select '2022-01-18' [rq],'T' [FLAG]
UNION ALL
select '2022-01-19' [rq],'F' [FLAG]
UNION ALL
select '2022-01-20' [rq],'F' [FLAG]
UNION ALL
select '2022-01-21' [rq],'F' [FLAG]
)
SELECT A.rq,(
SELECT T.rq FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY '' ORDER BY B.RQ ASC) I,B.rq FROM t_WorkCalendar_SZ B WHERE B.FLAG='F' AND B.rq>=A.rq
) T WHERE T.I=10
) [10天后] FROM tablea A