0

パッケージには、次のような構造を持つ 2 つの名前空間があります。

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

それぞれのstart_dateとの間の稼働日数を計算したい。end_datework_id

以下のような式で新しいデータ項目を作成しようとしました:

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

上記の式は true または false を返します。これは、指定された 2 日間の間に稼働日があるかどうかを意味します。

しかし、私が欲しかったのは、与えられた 2 つの日付の間の稼働日数です。上記でカウントを使用しようとしましたが、機能しませんでした。

上記の式を変更してカウントを取得する方法、または必要な結果 (つまり、上記の名前空間を使用した各 work_id の指定された 2 つの日付間の稼働日数) を取得するその他の方法を教えてください。

4

1 に答える 1

0

2 つの日付間の稼働日を計算するには、DIFFDATE 関数を使用し、Where 句に条件を入力する必要があります。この場合、2 つの稼働日の間に必要な稼働日が得られます。

例えば:

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] between a.[start_date] と a.[end_date] および b.is_holiday = 'N'

于 2013-04-05T10:43:02.290 に答える