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

मैं इसकी प्रभावी तिथि के आधार पर वर्तमान रिकॉर्ड कैसे प्राप्त करूं?

मुझे लगता है कि ऐसा करने के और भी तरीके हैं, लेकिन मुझे लगता है कि यह काम करता है:

DECLARE 
  @OrganizationID varchar(40)

SET @OrganizationID = 'SMESM1HTOVEOVE'

SELECT
  ro.ResourceID,
  ro.OrganizationID,
  max(ro.EffectiveDate)
FROM
  ResourceOrganization ro
WHERE
  ro.OrganizationID = @OrganizationID
GROUP BY
  ro.ResourceID,
  ro.OrganizationID
HAVING
  max(ro.EffectiveDate) = (
    SELECT 
      max(EffectiveDate)
    FROM 
      ResourceOrganization
    WHERE 
      ResourceID = ro.ResourceID)

यह रहा एक SQLFiddle साथ खेलने के लिए।

संपादित करें:असल में, यह शायद अधिक जटिल है। इसे आजमाएं:

DECLARE 
  @OrganizationID varchar(40)

SET @OrganizationID = 'SMESM1HTOVEOVE'

SELECT
  ro.ResourceID,
  ro.OrganizationID,
  ro.EffectiveDate
FROM
  ResourceOrganization ro
WHERE
  ro.OrganizationID = @OrganizationID
  AND ro.EffectiveDate = (
    SELECT 
      max(EffectiveDate)
    FROM 
      ResourceOrganization
    WHERE 
      ResourceID = ro.ResourceID)


  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 तालिका निर्माण

  2. मैं एसक्यूएल सर्वर में टेक्स्ट का समूह कैसे जोड़ सकता हूं और बना सकता हूं?

  3. डेटाबेस आरेख समर्थन वस्तुओं को स्थापित नहीं किया जा सकता ... कोई वैध स्वामी नहीं

  4. SQL अलर्ट जब संग्रहीत कार्यविधि बहुत लंबे समय तक निष्पादित होती है

  5. SQL सर्वर इंडेक्स बैकवर्ड स्कैन:समझ और प्रदर्शन ट्यूनिंग