2013-02-23 92 views
5

मेरे पास दो टेबल ए और बी हैं। ए में दो कॉलम हैं: आईडी, राशि। बी में दो कॉलम भी हैं: आईडी, राशि। मुझे उम्मीद है कि ए और बी को एक नई टेबल सी बनाने के लिए, दो कॉलम के साथ: आईडी, राशि। एसक्यूएल का उपयोग करके मैं इसे कैसे कर सकता हूं? उदाहरण के लिए:दो टेबलों को अपने ही कॉलम में कैसे जोड़ें?

A 
    ('A1',1) 
    ('A2',5) 
    ('A3',2) 
    ('A4',5) 
    ('A5',2) 
    ('A6',7) 
B 
    ('A1',3) 
    ('A3',2) 
    ('A4',7) 
    ('A5',4) 
    ('A8',2) 
    ('A9',10) 

तो सी होना चाहिए:

C 
    ('A1',4) 
    ('A2',5) 
    ('A3',4) 
    ('A4',12) 
    ('A5',6) 
    ('A6',7) 
    ('A8',2) 
    ('A9',10) 

धन्यवाद!

उत्तर

7
SELECT ID, SUM(Amount) total 
FROM 
     (
      SELECT ID, Amount FROM A 
      UNION ALL 
      SELECT ID, AMount FROM B 
     ) s 
GROUP BY ID 

आप क्वेरी से परिणाम पर एक मेज आधार बना सकते हैं।

CREATE TABLE C 
AS 
SELECT ID, SUM(Amount) total 
FROM 
     (
      SELECT ID, Amount FROM A 
      UNION ALL 
      SELECT ID, AMount FROM B 
     ) s 
GROUP BY ID; 
+1

+1 आप क्रिएट टेबल सी भी जोड़ सकते हैं :) हालांकि मुझे यकीन नहीं है कि ओरेकल में यह सुविधा है या नहीं। –

+0

धन्यवाद! एक और सवाल (माफ करना मैं एसक्यूएल के लिए नया हूं), अगर ए और बी सिर्फ चुनिंदा परिणाम है, तो मैं इसे कैसे कार्यान्वित कर सकता हूं? मेरा मतलब है, ए असली टेबल नहीं है, मैं कहां से प्राप्त करता हूं ... क्या मुझे दृश्य या कुछ बनाने की ज़रूरत है? धन्यवाद! – lkkeepmoving

+0

@lkkeepmoving हाँ आप एक दृश्य बना सकते हैं लेकिन यदि आप इसे नहीं करना चाहते हैं, तो आप उस क्वेरी का उपयोग एक सबक्वायरी में भी कर सकते हैं, उदाहरण के लिए 'चयन आईडी, राशि से ... (यहां क्वेरी जोड़ें ...) newTB ' –

0

जवाब ऊपर बिल्कुल ठीक काम करता है। बस इसे उस खंड में जोड़ने के लिए जो आईडी द्वारा क्रमबद्ध होगा।

SELECT ID, SUM(Amount) as total 
FROM 
     (
      SELECT ID, Amount FROM A 
      UNION ALL 
      SELECT ID, AMount FROM B 
     ) s 
GROUP by ID 
order by ID 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^