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

एसक्यूएल में मूल्यों को प्रक्षेपित करने का सबसे अच्छा तरीका

कुछ इस तरह (सही किया गया):

SELECT CASE WHEN next.Date IS NULL  THEN prev.Rate
            WHEN prev.Date IS NULL  THEN next.Rate
            WHEN next.Date = prev.Date  THEN prev.Rate
              ELSE ( DATEDIFF(d, prev.Date, @InputDate) * next.Rate 
                   + DATEDIFF(d, @InputDate, next.Date) * prev.Rate
                   ) / DATEDIFF(d, prev.Date, next.Date)
       END AS interpolationRate 
FROM
  ( SELECT TOP 1 
        Date, Rate 
    FROM Rates
    WHERE Date <= @InputDate
    ORDER BY Date DESC
  ) AS prev
  CROSS JOIN
  ( SELECT TOP 1 
        Date, Rate 
    FROM Rates
    WHERE Date >= @InputDate
    ORDER BY Date ASC
  ) AS next


  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. कैसे बाधा के साथ कॉलम ड्रॉप करने के लिए?

  3. SQL एजेंट जॉब में चलने वाले SSIS पैकेज से विंडोज इवेंट लॉग एक्सेस

  4. किसी संग्रहीत कार्यविधि में तालिका मान पैरामीटर पास करना

  5. टी-एसक्यूएल ट्रिम   (और अन्य गैर-अल्फ़ान्यूमेरिक वर्ण)