SQL问题

某字段日期+天数 得到日期 除节假日 的SQL公式

SQL yzm172931 发布于 2023-6-25 14:56
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-6-25 14:59(编辑于 2023-6-25 15:25)

除非你有一张日历表里面标注了节假日

另外数据库不同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

image.png

  • yzm172931 yzm172931(提问者) 有节假日的表 [DM].[dbo].[t_WorkCalendar_SZ]
    2023-06-25 15:00 
  • Z4u3z1 Z4u3z1 回复 yzm172931(提问者) 数据库是SqlServer?
    2023-06-25 15:00 
  • yzm172931 yzm172931(提问者) 回复 Z4u3z1 是的
    2023-06-25 15:02 
  • Z4u3z1 Z4u3z1 回复 yzm172931(提问者) 模拟测试SQL补充在上面了
    2023-06-25 15:25 
最佳回答
0
shirokoLv6资深互助
发布于2023-6-25 14:59

节假日需要先做一张表存储法定节假日的日期。然后才可以关联计算。法定节假日判断- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

  • 2关注人数
  • 169浏览人数
  • 最后回答于:2023-6-25 15:25
    请选择关闭问题的原因
    确定 取消
    返回顶部