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

उसी चयन कथन से N के साथ गतिशील रूप से शीर्ष N का चयन करें

आप row_number() . का उपयोग कर सकते हैं अनिवार्य रूप से वही काम करना:

WITH DataToInsert AS
(
    Select AgentID, Surveys, LOB,(case when day(getdate())<4 then 3 else (day(getdate())) - (Surveys*3) end) SampleSize from Current_Agent_SurveyCount_HSI Where surveys<8 
)
Insert Into Survey_Source_New (LOB, CenterName, CallDate, AgentZid, TN, Ticket, RecordingID, Cycle, [TimeStamp])  
    select LOB, CenterName, CallDate, AgentZid, TN, Ticket, RecordingID, Cycle, [TimeStamp]
    from (Select ss.LOB, CenterName, CallDate, AgentZid, TN, Ticket, RecordingID, Cycle, [TimeStamp],
                 row_number() over (order by newid()) as seqnum
          From Survey_source_Level1 ss inner join
               DataToInsert du on ss.AgentZID=du.agentID
          where flag is null and du.samplesize<7
         ) t
    where seqnum <= du.sample_size

आप इसे थोड़ा आसान कर सकते हैं, लेकिन मुझे नहीं पता कि flag डु या एसएस से आ रहा है।



  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. SQL सर्वर T-SQL त्रुटि प्रबंधन का सर्वोत्तम अभ्यास उपयोग क्या है?

  3. क्या कारण है कि सबक्वेरी 1 से अधिक मान लौटाती है... त्रुटि?

  4. एसक्यूएल:जहां MYID =कोई है?

  5. SSMS 2019 (v18) के लिए एक्सटेंशन कैसे बनाएं