我的資料格式如下:
| ID | 創建日期 | 準備開始的日期 | 進行中的日期 | 開發完成日期 | 日期測驗完成 | 接受日期 |
|---|---|---|---|---|---|---|
| 1 | 2021-11-01 12:01:15 | 2021-11-02 14:01:15 | 2021-11-04 05:01:15 | 2021-11-04 12:01:15 | 2021-11-05 12:01:15 | 2021-11-06 12:01:15 |
| 2 | 2021-11-01 12:01:45 | 空值 | 2021-11-03 12:01:15 | 空值 | 空值 | 2021-11-05 12:01:15 |
| 3 | 2021-11-03 11:11:05 | 2021-11-04 12:01:15 | 空值 | 空值 | 空值 | 空值 |
| 4 | 2021-11-05 19:31:45 | 2021-11-05 12:01:15 | 2021-11-06 12:01:15 | 空值 | 空值 | 空值 |
| 5 | 2021-11-04 13:21:25 | 空值 | 空值 | 空值 | 空值 | 空值 |
我需要它的格式如下:
| 日期 | 已創建 | 準備開始 | 進行中 | 開發完成 | 測驗完成 | 公認 |
|---|---|---|---|---|---|---|
| 2021-11-01 | 2 | 0 | 0 | 0 | 0 | 0 |
| 2021-11-02 | 0 | 1 | 0 | 0 | 0 | 0 |
| 2021-11-03 | 1 | 0 | 1 | 0 | 0 | 0 |
| 2021-11-04 | 0 | 1 | 1 | 1 | 0 | 0 |
| 2021-11-05 | 1 | 1 | 0 | 0 | 1 | 1 |
| 2021-11-06 | 0 | 0 | 1 | 0 | 0 | 1 |
滾動日期從當前日期回溯 3 個月。
我不確定如何開始...我是將創建滾動日歷的遞回表合并到現有資料中,還是對計數進行一系列自定義選擇,然后按日期分組?
uj5u.com熱心網友回復:
嘗試這樣的事情:
DECLARE @Today date = GetDate();
DECLARE @MinDate date = DateAdd(month, -3, @Today);
DECLARE @DayCount int = 1 DateDiff(day, @MinDate, @Today);
WITH cteNumbers As
(
/* Use a tally-table here if you have one: */
SELECT TOP (@DayCount)
ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) As N
FROM
sys.all_columns
),
cteCalendar As
(
SELECT
DateAdd(day, N, @MinDate) As [Date],
DateAdd(day, N 1, @MinDate) As NextDay
FROM
cteNumbers
)
SELECT
C.[Date],
(
SELECT Count(1)
FROM YourTable As T
WHERE T.[Date Created] >= C.[Date]
And T.[Date Created] < C.NextDay
) As [Created],
(
SELECT Count(1)
FROM YourTable As T
WHERE T.[Date Ready to Start] >= C.[Date]
And T.[Date Ready to Start] < C.NextDay
) As [Ready to Start],
...
FROM
cteCalendar As C
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/371169.html
標籤:sql-server 日期
