आप इसे CTE
. का उपयोग करके कर सकते हैं और row_number()
।
;with cte as
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY i.id ORDER BY e.EventDate DESC) as rNum
FROM Item i
JOIN Event e
ON i.id between e.ItemStart and e.ItemEnd
)
SELECT ID,
Name,
EventType,
EventDate FROM cte
WHERE rNum = 1
मूल रूप से सीटीई आइटम और घटना में शामिल हो गया है और पंक्ति संख्या के लिए एक नया कॉलम जोड़ा है और इसे आइटम.आईडी पर विभाजित किया गया है। यह कैसा दिखता है इसका एक स्क्रीनशॉट यहां दिया गया है। यहां से मैं केवल rNum =1 का चयन करता हूं जो प्रत्येक आइटम के लिए अधिकतम ईवेंट तिथि होनी चाहिए।