まずアクティブフラグを変更させるために、私は、開始日と終了日の間に一連の日付を生成したが、それは、曜日を返します。
SELECT DATEPART(weekday, DATEADD(DAY, nbr - 1, @StartDate)) as dow
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.object_id) AS Nbr
FROM sys.columns c
)nbrs
WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)
次にあなたが使用することができますインクルードしたい曜日を選択する単純なWHERE IN()と、返された日数を数えます。
DECLARE @StartDate DATE = '20170101'
, @EndDate DATE = '20170131'
SELECT COUNT(*) AS DAYS
FROM (
SELECT DATEPART(weekday, DATEADD(DAY, nbr - 1, @StartDate)) as dow
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.object_id) AS Nbr
FROM sys.columns c
)nbrs
WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)
) T1
WHERE DOW IN (3,4,5);
は、あなたがSET DATEFIRSTでそれを変更することができ、あなたのSQL Serverでの週のモミの日の世話をします。
は、ここでそれを確認してください:http://rextester.com/WCLIXM28868
あなたは営業日を意味するのですか? – McNets
@McNets、まあ、まあ、就業日だけでなく、日曜日から金曜日まで、月曜日から金曜日まで...それはかなり変わりますが、各クエリーに必要な日を就業日として定義する方法があれば、その作業 – rhernandez
ルックアップカレンダーテーブルはありますか? – McNets