我有這樣的數據:活動狀態和2012
CREATE TABLE #student
(
student_id INT,
status VARCHAR(50),
created_dt DATE
)
CREATE TABLE #student_status_history
(
student_id INT,
from_status VARCHAR(50),
to_status VARCHAR(50),
status_changed_dt DATE
)
INSERT INTO #student (student_id, status, created_dt)
VALUES (1, 'Active', '2016-10-02'),
(2, 'Active', '2016-10-02'),
(3, 'Active', '2016-10-02')
SELECT *
FROM #student
在10月5日student2
狀態更新爲inactive
UPDATE #student
SET status = 'Inactive'
WHERE student_id = 2
INSERT INTO #student_status_history (student_id, from_status, to_status, status_changed_dt)
VALUES (2, 'Active', 'Inactive', '2016-10-05')
SELECT *
FROM #student
SELECT *
FROM #student_status_history
在10月8日student2
狀態更新爲active
:
UPDATE #student
SET status = 'Active'
WHERE student_id = 2
INSERT INTO #student_status_history (student_id, from_status, to_status, status_changed_dt)
VALUES (2, 'InActive', 'Active', '2016-10-08')
10月9日我創建d另一名學生:
INSERT INTO #student (student_id, status, created_dt)
VALUES (4, 'Active', '2016-10-09')
10月10日我在表中列出了這些數據。
select * from #student
select * from #student_status_history
使用上面的表格
我應該產生從十月1日至10月10日活動的學生爲在該日10月10日的一份報告
輸出應該如下
Date ActiveCount
----------- -----------
2016-10-01 0
2016-10-02 3
2016-10-04 3
2016-10-05 2
2016-10-06 2
2016-10-07 2
2016-10-08 3
2016-10-09 4
2016-10-10 4
這是什麼邏輯爲'2016年10月4日3' – TheGameiswar