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

एसक्यूएल में डेटा पंक्तियों को जोड़ना और प्राप्त करना

select *
from
    (select * from T where Action = 'SENT') s
    left outer join
    (select * from T where Action = 'RECEIVED') r
        on r.Module and s.Module and r.User = s.User and r.Batch = s.Batch

नमूना डेटा की सीमित मात्रा से ऐसा प्रतीत होता है कि आप एक सामान्य module का उपयोग करके विशिष्ट रूप से एक मिलान निर्धारित कर सकते हैं , user और batch . मुझे यकीन नहीं है कि आप अपने प्रश्नों में डुप्लिकेट के साथ क्यों आए। ऐसा लगता है कि एकमात्र अन्य समस्या "भेजने" को रखने के लिए बाहरी जुड़ाव का उपयोग कर रही है जिसमें अभी तक "प्राप्त" नहीं है।

मुझे लगता है कि आप अभी भी परिणाम में सब कुछ चाहते थे। यदि आप केवल अयुग्मित परिदृश्य चाहते हैं तो जोड़ें:

where r.Module is null


  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 सर्वर में "अंकगणित अतिप्रवाह त्रुटि अभिव्यक्ति को डेटा प्रकार int में परिवर्तित करना" को ठीक करें

  2. चयन क्वेरी में समूह के साथ होने वाले खंड को कैसे लागू करें - एसक्यूएल सर्वर / टीएसक्यूएल ट्यूटोरियल भाग 131

  3. डेटाबेस तालिका से वर्ग उत्पन्न करें

  4. SQL में क्वेरी द्वारा समूह में गैर कुल कॉलम दिखा रहा है

  5. ब्रेंट ओज़र और पिनल डेव से SQL सर्वर प्रदर्शन सलाह