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

SQL सर्वर में क्षैतिज रूप से दो से अधिक तालिकाओं को संयोजित करें

ऐसा लगता है कि आप परिवार तालिका में पंक्तियों को "क्रमिक रूप से" ऋण आवंटित करने का प्रयास कर रहे हैं। इसे हल करने का तरीका यह है कि पहले सही पंक्तियों को प्राप्त किया जाए, और फिर पंक्तियों को ऋण दिया जाए।

सही पंक्तियाँ (और पहले तीन कॉलम) हैं:

select f.EmpId, e.Name, f.Relationship
from family f join
     Employee e
     on f.empid = e.empid;

ध्यान दें कि यह दोहराए गए मानों के लिए कॉलम में हाइफ़न नहीं डालता है, यह वास्तविक मानों को रखता है। यद्यपि आप SQL में हाइफ़न की व्यवस्था कर सकते हैं, यह एक बुरा विचार है। SQL परिणाम तालिकाओं के रूप में होते हैं, जो प्रत्येक कॉलम और प्रत्येक पंक्ति के मानों के साथ अनियंत्रित सेट होते हैं। जब आप हाइफ़न डालना शुरू करते हैं, तो आप ऑर्डर पर निर्भर होते हैं।

अब समस्या ऋण में शामिल होने की है। यह वास्तव में बहुत आसान है, row_number() . का उपयोग करके एक join . जोड़ने के लिए कुंजी:

select f.EmpId, e.Name, f.Relationship, l.LoanId
from Employee e left join
     (select f.*, row_number() over (partition by f.EmpId order by (select NULL)) as seqnum
      from family f
     ) f 
     on f.empid = e.empid left join
     (select l.*, row_number() over (partition by l.EmpId order by (select NULL)) as seqnum
      from Loan l
     ) l
     on f.EmpId = l.EmpId and f.seqnum = l.seqnum;

ध्यान दें कि यह किसी दिए गए कर्मचारी के लिए ऋण के असाइनमेंट के आदेश की गारंटी नहीं देता है। ऐसा लगता है कि आपके डेटा में अधिक सुसंगत असाइनमेंट को संभालने के लिए पर्याप्त जानकारी नहीं है।



  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 सर्वर 2014 SP2 में केवल एक उपयोगकर्ता डेटाबेस की एक स्कीमा और आँकड़े उत्पन्न करने के लिए DBCC CLONEDATABASE का उपयोग करना

  3. SQL सर्वर एजेंट कार्य संशोधित करें (T-SQL)

  4. बेसिक pyodbc बल्क इंसर्ट

  5. मैं एक ही चयन कथन में एकाधिक सामान्य तालिका अभिव्यक्ति कैसे प्राप्त कर सकता हूं?