首页 > 解决方案 > 正确计算 SQL 中的工作日

问题描述

我有一个包含一些用户 ID 事件的表(起始表)。

在此表中有一个 Event_Id = 1 表示当地假期(不是工作日)。

在此处输入图像描述

我需要填写“Event_1”列才能正确计算WorkingDays(结果表 - 如下)。

我已经有一个计算工作日的函数。

在此处输入图像描述

问候, 埃利奥·费尔南德斯

标签: sqlsql-server-2008

解决方案


我想出了这个解决方案,但我想知道您是否认为这是最好的方法。

Select T1.*,
    Case
        When t2.StartDate Is not Null and t1.Event_Id = 1 then 0
        When t2.StartDate Is not Null Then 1 
        Else 0
    End As [Local_Holiday]
From 
    [plann].[Events]  as T1 left Join
    (Select StartDate
        From [plann].[Events] 
        Where Event_Id = 1 ) as T2 ON T2.StartDate Between T1.StartDate and T1.EndDate

推荐阅读