0

在一个包中,我有两个名称空间,其结构如下:

NamespaceA -> work_id, start_date, end_date 
NamespaceB -> calender_date, is_holiday 

我想计算start_date每个end_date.work_id

我尝试使用如下表达式创建一个新数据项:

= 
[calender_date] between [start_date] and [end_date] 
and 
is_holiday = 'N' 
= 

上面的表达式返回 true 或 false,表示两个给定日期之间是否有工作日。

但我想要的是两个给定日期之间的工作日数。我尝试在上面使用计数,但它不起作用。

您能否让我知道如何更改上述表达式以产生计数或任何其他方式我可以获得所需的结果(即,使用上述命名空间的每个 work_id 的两个给定日期之间的工作日数)。

4

1 回答 1

0

要计算两个日期之间的工作日,您应该需要使用 DIFFDATE 函数并在 Where 子句中放置您的条件......在这种情况下,您将在两个工作日之间获得所需的工作日。

例如:

SELECT DATEDIFF(day,'start_date','end_date') AS WorkingDays FROM NamespaceA a

INNER JOIN NamespaceB b ON b.calender_date BETWEEN a.start_date AND a.end_date

WHERE
b.[calender_date] 在 a.[start_date] 和 a.[end_date] 和 b.is_holiday = 'N' 之间

于 2013-04-05T10:43:02.290 回答