ドキュメントをいつまでに完了する必要があるかを示す「DaysUntilDue」列があります。「記録された日」列を使用して「期日」に基づいて「期日」を計算し、土曜日と日曜日の両方を除外する必要があります。
私が持っているのは、作業する必要があることがわかっている列だけです。土曜日と日曜日を除外した Case When ステートメントのコードがありますが、それを必要な作業に組み込む方法がわかりません。必要なすべての列があり、すべてが必要な方法でリンクされています。ドキュメントの「logTime」が既存の「DaysUntilDue」を使用して期日を計算するが、週末を除外するというステートメントを作成する方法に本当に苦労しています
SELECT
CategoryName,
DocCategory,
DaysUntilDue,
TranNbr,
DueDate,
LogTime
FROM Queue INNER JOIN WQMTransactions ON Queue.TranNbr = WQMTransactions.TranNbr INNER JOIN
ServiceQ INNER JOIN CategoryList ON ServiceQn.TranID = CategoryList.TranID
INNER JOIN Category ON CategoryList.CategoryID = Category.CategoryID
ON Queue.CategoryID = Category.CategoryID AND Queue.TranID = ServiceQ.TranID
寝不足のせいかもしれませんが、概念的にどうしたらいいのかわかりません。
同様のことを行う別の qry 用に作成したこの Case ステートメントを使用する必要があると想定しています。
CASE WHEN Doc IN ( 'POS', 'Card' )
THEN CAST(DATEADD(d, CASE DATEPART(dw, DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered) + ( DATEPART(dw,
DATEADD(d,
CASE DATEPART(dw,
DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered))
- 2 + 5 ) % 5
+ ( ( DATEPART(dw, DATEADD(d, CASE DATEPART(dw, DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered)) - 2 + 5 )
/ 5 ) * 7 - ( DATEPART(dw,
DATEADD(d,
CASE DATEPART(dw,
DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered)) - 2 ) AS DATE)
ELSE CAST(DATEADD(d, CASE DATEPART(dw, DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered) + ( DATEPART(dw,
DATEADD(d,
CASE DATEPART(dw,
DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered))
- 2 + 10 ) % 5
+ ( ( DATEPART(dw, DATEADD(d, CASE DATEPART(dw, DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered)) - 2 + 10 )
/ 5 ) * 7 - ( DATEPART(dw,
DATEADD(d,
CASE DATEPART(dw,
DateEntered)
WHEN 7 THEN 2
WHEN 1 THEN 1
ELSE 0
END, DateEntered)) - 2 ) AS DATE)
END AS 'Required SLA Date'