;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY DocumentID ORDER BY DateCreated DESC) AS rn
FROM DocumentStatusLogs
)
SELECT *
FROM cte
WHERE rn = 1
Nếu bạn mong đợi 2 mục nhập mỗi ngày, thì tùy chọn này sẽ chọn một mục. Để nhận cả hai mục trong một ngày, hãy sử dụng DENSE_RANK thay thế
Còn về chuẩn hóa hay không thì tùy bạn có muốn:
- duy trì trạng thái ở 2 nơi
- lưu giữ lịch sử trạng thái
- ...
Khi nó tồn tại, bạn bảo tồn lịch sử trạng thái. Nếu bạn cũng muốn có trạng thái mới nhất trong bảng chính (là trạng thái không chuẩn hóa), bạn cần một trình kích hoạt để duy trì "trạng thái" trong bảng chính. hoặc bỏ bảng lịch sử trạng thái này.