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

समूहीकृत तालिका पंक्तियों पर पुनरावर्ती CTE लागू करें (SQL सर्वर 2005)

कोशिश करने के लिए कुछ चीज़ें

  • प्रत्येक के साथ जुड़ने के बजाय पंक्ति और परिणामों को अपने जहां क्लॉज में फ़िल्टर करना, क्या आप कोशिश कर सकते हैं कि सीधे जुड़ने में रिकॉर्ड की मात्रा को कम करने से चीजें तेज हो जाती हैं?
  • पर्सनकी, रूमकी, चेकआउट और रो पर एक कवरिंग इंडेक्स जोड़ें और देखें कि क्या यह प्रदर्शन में सुधार करता है।

एसक्यूएल स्टेटमेंट

;with CTE (PERSONKEY, ROOMKEY, CHECKIN, CHECKOUT, ROW)
as (select RU.PERSONKEY,
           RU.ROOMKEY, 
           RU.CHECKIN,
           RU.CHECKOUT,
           RU.ROW
    from ROOMUSAGE RU
    where RU.ROW = 1

    union all

    select RU.PERSONKEY,
           RU.ROOMKEY, 
           RU.CHECKIN,
           RU.CHECKOUT,
           RU.ROW
    from ROOMUSAGE RU 
         inner join CTE on CTE.ROW + 1 = RU.ROW
                           and CTE.CHECKIN = RU.CHECKOUT
                           and CTE.PERSONKEY = RU.PERSONKEY
                           and CTE.ROOMKEY = RU.ROOMKEY
)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपडेट स्टेटमेंट के बाद बदले हुए मान देखें

  2. SQL सर्वर प्रतिकृति समस्या निवारण

  3. कॉलम का नाम बदलें त्रुटि लौटा रहा है

  4. गैर-संख्या वर्ण जो SQL सर्वर में ISNUMERIC () का उपयोग करते समय सकारात्मक लौटते हैं

  5. LINQ से SQL तालिका से प्रत्येक Nth पंक्ति