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

प्रत्येक समूह के लिए दिए गए मान से अधिक या उसके बराबर अगला न्यूनतम प्राप्त करें

व्युत्पन्न तालिका a दिए गए refid . तालिका 1 से न्यूनतम मान पुनर्प्राप्त करता है और intVal तालिका 2 से; बाहरी क्वेरी केवल someValue प्राप्त करती है।

select a.refid, a.intVal, a.nextGt, table1.SomeVal
from
(
    select table2.refid, table2.intval, min (table1.intVal) nextGt
      from table2
      left join table1
        on table2.refid = table1.refid
       and table2.intVal <= table1.intVal
     group by table2.refid, table2.intval
) a
-- table1 is joined again to retrieve SomeVal 
left join table1
  on a.refid = table1.refid
 and a.nextGt = table1.intVal

यहां लाइव टेस्ट के साथ Sql Fiddle है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Microsoft SQL सर्वर में एक दिनांक स्वरूप से दूसरे में कैसे परिवर्तित करें?

  2. SQL तालिका और डेटा निष्कर्षण

  3. पहले ईएफ कोड में संयोजन को कैसे बदलें/सेट करें?

  4. Sql Server 2008 भूगोल लाइनस्ट्रिंग आकार सीमाएँ

  5. SQL सर्वर में DATEDIFF () बनाम DATEDIFF_BIG ():क्या अंतर है?