在一个包中,我有两个名称空间,结构如下:
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的两个给定日期之间的工作日数) 。
答案 0 :(得分:0)
要计算两个日期之间的工作日,您应该使用DIFFDATE功能,并在Where子句中输入您的条件......在这种情况下,您将在两个工作日之间获得所需的工作日。
例如:
SELECT DATEDIFF(day,'start_date','end_date')AS WorkingDays 来自NamespaceA a
INNER JOIN NamespaceB b ON b.calender_date BETWEEN a.start_date AND a.end_date
WHERE
b。[start_date]和a。[end_date]之间的[calender_date]
和b.is_holiday ='N'