;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY DocumentID ORDER BY DateCreated DESC) AS rn
FROM DocumentStatusLogs
)
SELECT *
FROM cte
WHERE rn = 1
यदि आप प्रति दिन 2 प्रविष्टियों की अपेक्षा करते हैं, तो यह मनमाने ढंग से एक को चुनेगी। एक दिन के लिए दोनों प्रविष्टियां प्राप्त करने के लिए, इसके बजाय DENSE_RANK का उपयोग करें
सामान्यीकृत या नहीं के लिए, यह निर्भर करता है कि आप चाहते हैं:
- 2 स्थानों पर स्थिति बनाए रखें
- स्थिति इतिहास सुरक्षित रखें
- ...
जैसा कि यह खड़ा है, आप स्थिति इतिहास को संरक्षित करते हैं। यदि आप मूल तालिका में भी नवीनतम स्थिति चाहते हैं (जो कि सामान्यीकरण है) तो आपको माता-पिता में "स्थिति" बनाए रखने के लिए एक ट्रिगर की आवश्यकता होगी। या इस स्थिति इतिहास तालिका को छोड़ दें।