【发布时间】:2019-08-30 11:00:06
【问题描述】:
我有一个 #TMP 表,其中填满了日期及其相应的备注。它看起来像这样:
Date isworkdays isweekdays
2019-08-16 1 1
2019-08-17 0 0
2019-08-18 0 0
2019-08-19 1 1
2019-08-20 1 1
2019-08-21 1 1
2019-08-22 1 1
2019-08-23 1 1
2019-08-24 0 0
2019-08-25 0 0
2019-08-26 1 1
2019-08-27 1 1
2019-08-28 1 1
2019-08-29 1 1
2019-08-30 1 1
2019-08-31 0 0
2019-09-01 0 0
2019-09-02 1 1
2019-09-03 1 1
2019-09-04 1 1
2019-09-05 1 1
2019-09-06 1 1
2019-09-07 0 0
2019-09-08 0 0
2019-09-09 1 1
2019-09-10 1 1
2019-09-11 1 1
2019-09-12 1 1
2019-09-13 1 1
2019-09-14 0 0
2019-09-15 0 0
2019-09-16 1 1
2019-09-17 1 1
2019-09-18 1 1
2019-09-19 1 1
2019-09-20 1 1
2019-09-21 0 0
2019-09-22 0 0
2019-09-23 1 1
2019-09-24 1 1
2019-09-25 1 1
2019-09-26 1 1
2019-09-27 1 1
2019-09-28 0 0
2019-09-29 0 0
2019-09-30 1 1
Date 列显然是从2019-08-16 到2019-10-16 的一系列日期
isworkingdays 列表示“1”,如果日期是周一到周五,“0”表示周六和周日。 isweekdays 列表示“1”表示日期不是节假日,表示“0”表示节假日。
我想只计算 2019-08-16 到 2019-09-16 之间的天数到 isworkdays = 1 的日期,周六和周日算作 1
这是我到目前为止所做的
declare @userinput date
SELECT SUM(IsWorkDay) AS DayCount FROM AMIFIN..PDC T
LEFT JOIN dbo.#TMP c ON c.[Date] <= T.Check_Date
WHERE CAST(@userinput AS Date) <= CAST((c.[Date]) as date) AND c.IsWorkDay = 1
但它返回 3952743 天
【问题讨论】:
-
and for saturday and sunday count it as 1...这实际上是什么意思?您能否根据给定示例数据中包含的日期范围显示示例输出? -
对于正常的日子,比如从周一到周五,它被计为 1,但对于周六和周日而不是单独计算,它应该被计为 1。
标签: sql-server