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

2 टेबल से डेटा मर्ज करना

एकाधिक तालिकाओं में डेटा क्वेरी करने के लिए, आप तालिकाओं में शामिल होना चाहते हैं . मैं आपकी दो तालिकाओं के बीच संबंध पर 100% स्पष्ट नहीं हूं, लेकिन यदि MedicalRecordID सही संबंध है, तो आपकी क्वेरी कुछ इस तरह दिखनी चाहिए:

SELECT
    CONVERT(char(80), i.InvDate,3) AS InvDate,
    i.InvoiceNo,
    i.EmployerCode,
    i.TaxAmount + i.SubTotal AS Amount,
    '' AS Payment,
    pd.LastName,
    pd.GivenName
FROM
    dbo.Invoice i
        INNER JOIN dbo.PatientDetails pd ON (pd.MedicalRecordID = i.MedicalRecordID)
;

यह तब काम करता है जब तालिकाओं के बीच एक-से-एक संबंध होता है, और यदि हमेशा PatientDetails होता है प्रत्येक चालान के लिए रिकॉर्ड। अगर PatientDetails वैकल्पिक है, तो LEFT JOIN का उपयोग करें INNER JOIN . के बजाय ।

संपादित करें (टिप्पणी की प्रतिक्रिया):

मैं शर्त लगा रहा हूं कि आपके WHERE क्लॉज में डेटटाइम रूपांतरण आपकी अपेक्षा के अनुरूप काम नहीं कर रहा है। मान लें कि dtpFrom और dtpTo DatePicker हैं नियंत्रण, आप शायद SelectedDate . का उपयोग करना चाहते हैं Text . के बजाय संपत्ति . साथ ही, मैं स्ट्रिंग को संयोजित करने के बजाय आपके प्रश्नों में पैरामीटर का उपयोग करने की अत्यधिक अनुशंसा करता हूं। आपका कोड साफ-सुथरा होगा, और आप SQL इंजेक्शन से बचेंगे। . यहां एक त्वरित उदाहरण दिया गया है:

using (SqlConnection connection = new SqlConnection( ... ))
{
    connection.Open();

    string sql = @"
                SELECT
                    CONVERT(char(80), i.InvDate,3) AS InvDate,
                    i.InvoiceNo,
                    i.EmployerCode,
                    i.TaxAmount + i.SubTotal AS Amount,
                    '' AS Payment,
                    pd.GivenName
                FROM
                    dbo.Invoice i
                        LEFT JOIN dbo.PatientDetails pd ON (pd.MedicalRecordID = i.MedicalRecordID)
                WHERE
                    InvDate >= @fromDate AND InvDate <= @toDate";

    SqlCommand cmd = new SqlCommand(sql, connection);
    cmd.Parameters.AddWithValue("@fromDate", dtpFrom.SelectedDate);
    cmd.Parameters.AddWithValue("@toDate", dtpTo.SelectedDate);

    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        // do stuff with results
    }
}



  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 सर्वर में एक जाँच बाधा कैसे बनाएँ (T-SQL उदाहरण)

  2. सी # में एकाधिक अनुरोधों के लिए एकल SQL सर्वर कनेक्शन इंस्टेंस को कैसे खोलें?

  3. IS NULL बनाम =NULL जहाँ क्लॉज + SQL सर्वर

  4. SQL सर्वर में किसी भिन्न डेटाबेस से OBJECT_NAME () कैसे प्राप्त करें

  5. SQL सर्वर डेटाबेस (T-SQL) में फ़ाइल समूह कैसे जोड़ें