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

Sql Server 2008 में तीन तालिकाओं से मिलान डेटा

मुझे लगता है कि आप ऐसा करने के लिए बाएं जुड़ने का उपयोग कर सकते हैं। इस क्वेरी को आज़माएं, आपके नमूना डेटा के साथ यह ApprovedQty को छोड़कर, वांछित आउटपुट उत्पन्न करता है , लेकिन मुझे समझ नहीं आता कि आप 12 . पर कैसे पहुंचे उसके लिए नमूना डेटा के साथ:

select 
    d.LOTQty, 
    ApprovedQty = count(d.ProductNo),
    d.DispatchDate,
    Installed = count(a.ProductNo) + count(r.ProductNo)
from 
    Despatch d 
left join 
    Activation a 
     on d.ProductNo = a.ProductNo 
    and d.DispatchDate < a.ActivationDate 
    and d.LOTQty = a.LOTQty
left join 
    Replaced r 
      on d.ProductNo = r.ProductNo 
     and d.DispatchDate < r.RecordDate
     -- only count Replaced when there is no match in Activation
     -- or DispatchDate is greater then ActivationDate
     and (a.ActivationDate is null or a.ActivationDate < d.DispatchDate)
where 
    d.LOTQty = 20
group by 
    d.LOTQty, d.DispatchDate

यह आउटपुट होगा:

LOTQty  ApprovedQty DispatchDate    Installed
20      6           2013-08-07      5



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऊर्ध्वाधर परिणाम को क्षैतिज मोड में बदलना (T-SQL)

  2. SQL सर्वर तालिका से यादृच्छिक पंक्तियाँ कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 117

  3. ट्रांसपोज़िंग टेबल

  4. SQL सर्वर पीडीएफ पूर्ण-पाठ खोज फाइलस्ट्रीम पीडीएफ फाइल पर काम नहीं कर रहा है

  5. SQL सर्वर में गतिशील रूप से SQL बनाम पैरामीटर बनाया गया