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

मैं इस क्वेरी को SQL सर्वर कॉम्पैक्ट संस्करण में कैसे बना सकता हूं?

ऐसे मामले हैं जब आप एक सबक्वेरी से बच नहीं सकते हैं, उदाहरण के लिए यदि आपको परिकलित कॉलम शामिल करने हैं जो वर्तमान और पिछली पंक्ति के डेटा का उपयोग करते हैं। उदाहरण के लिए इस प्रश्न पर विचार करें:

SELECT     
     (Current.Mileage - Last.Mileage)/Quantity as MPG
FROM         
     GasPurchases AS Current
     LEFT OUTER JOIN GasPurchases AS Last
     ON Last.Date =
        (SELECT MAX(PurchaseDate)
        FROM GasPurchases
        WHERE PurchaseDate < Current.PurchaseDate)

यह एक पार्सिंग त्रुटि उत्पन्न करेगा:

मुझे यह धागा मिला एमएसडीएन पर जिसमें वर्कअराउंड है। सबक्वेरी को बदलकर ताकि यह एक अदिश मान के बजाय एक सेट लौटाए, मैं निम्नलिखित क्वेरी को सहेजने और चलाने में सक्षम था।

SELECT     
     (Current.Mileage - Last.Mileage)/Quantity as MPG
FROM         
     GasPurchases AS Current
     LEFT OUTER JOIN GasPurchases AS Last
     ON Last.Date IN
        (SELECT MAX(PurchaseDate)
        FROM GasPurchases
        WHERE PurchaseDate < Current.PurchaseDate)


  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. कैसे ठीक करें:JSON_VALUE लॉन्ग स्ट्रिंग्स (SQL सर्वर) के साथ NULL लौटाता है

  3. क्या एएनएसआई जॉइन बनाम गैर-एएनएसआई जॉइन क्वेरी अलग-अलग प्रदर्शन करेगी?

  4. चालू वर्ष की पहली और आखिरी तारीख कैसे प्राप्त करें?

  5. एसक्यूएल सर्वर, कैस्केड डिलीट और पैरेंट/चाइल्ड टेबल