Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सहसंबद्ध उपश्रेणी से जुड़ता है जहाँ तालिकाएँ अतिव्यापी श्रेणियों से संबंधित होती हैं

आप इसे CTE . का उपयोग करके कर सकते हैं और row_number()

SQL Fiddle Demo

;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 का चयन करता हूं जो प्रत्येक आइटम के लिए अधिकतम ईवेंट तिथि होनी चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक एक्स-अक्ष स्तंभों के साथ SQL सर्वर PIVOT

  2. विंडोज़ प्रमाणीकरण का उपयोग कर SQL सर्वर से कनेक्ट करना

  3. SQL सर्वर:क्या मुझे बैचों के बीच GO स्टेटमेंट का उपयोग करने की आवश्यकता है?

  4. स्ट्रिंग sql से पहला नंबर मान निकालें

  5. चयन से एक तालिका बनाने का प्रयास करें - एसक्यूएल सर्वर 2008 त्रुटि फेंकता है