2010-11-24 16 views
6

कारण पहचान नहीं हो पा यहाँ एसक्यूएल है:के लिए "कॉलम अस्पष्ट परिभाषित" त्रुटि

SELECT alloc.oa_id 
    FROM qdod.qtran_owner_allocation alloc 
     INNER JOIN 
      (SELECT h.oa_id, h.div_ord_no, h.process_queue_id, h.from_ba_no, 
        h.from_ba_suf, h.from_interest_type_cd, h.from_interest_type_cd, h.from_div_ord_grp, 
        h.transfer_percent, h2.original_net_amount, h2.new_net_amount 
      FROM qdod.qtran_fund_transfer_hist h 
        INNER JOIN 
        (SELECT DISTINCT h0.oa_id, h0.original_net_amount, h1.new_net_amount 
         FROM qdod.qtran_fund_transfer_hist h0 
          INNER JOIN 
           (SELECT h4.oa_id, SUM (h4.new_net_amount) AS new_net_amount 
            FROM qdod.qtran_fund_transfer_hist h4 
           GROUP BY h4.oa_id) h1 
          ON h0.oa_id = h1.oa_id 
         WHERE h0.original_net_amount <> h1.new_net_amount AND h0.oa_id >= 100000000) h2 
        ON h.oa_id = h2.oa_id) h3 
     ON alloc.oa_id = h3.oa_id; 

प्रत्येक स्तंभ में यह तालिका में परिभाषित किया गया है है। मुख्य आंतरिक शामिल (आवंटित तालिका के बाद एक) स्वयं चलाते समय ठीक चलता है। कोई विचार क्यों यह काम नहीं कर रहा है? इसे ओरेकल 10.2.0.4 डेटाबेस के खिलाफ निष्पादित किया जा रहा है (मैंने 11.2.0.1 डेटाबेस के खिलाफ यह भी कोशिश की है कि क्या यह ओरेकल बग था, इसे 11.2 में हल किया जाएगा, लेकिन यह वहां भी असफल रहा)।

उत्तर

5

फील्ड बयान में दोहराया गया, आप स्तंभ क्या तुम सच में आप उन्हें कहीं उपयोग नहीं कर रहे के रूप में की जरूरत नहीं है की एक बहुत कुछ का चयन कर रहे यह

h.from_interest_type_cd, h.from_interest_type_cd, 
+0

+1 अच्छी आंख। जैसा कि [मेरे उत्तर] में बताया गया है (http://stackoverflow.com/questions/4268140/cant-idenfity-reason-for-column-ambiguously-defined-error/4268305#4268305), मुझे यह कॉलम भी नहीं लगता चुनने की जरूरत है। –

2

के साथ कुछ हो सकता है। क्वेरी को शायद सरलीकृत किया जा सकता है:

SELECT alloc.oa_id 
    FROM qdod.qtran_owner_allocation alloc 
     INNER JOIN 
      (SELECT h.oa_id 
      FROM qdod.qtran_fund_transfer_hist h 
        INNER JOIN 
        (SELECT DISTINCT h0.oa_id 
         FROM qdod.qtran_fund_transfer_hist h0 
          INNER JOIN 
           (SELECT h4.oa_id, SUM (h4.new_net_amount) AS new_net_amount 
            FROM qdod.qtran_fund_transfer_hist h4 
           GROUP BY h4.oa_id) h1 
          ON h0.oa_id = h1.oa_id 
         WHERE h0.original_net_amount <> h1.new_net_amount AND h0.oa_id >= 100000000) h2 
        ON h.oa_id = h2.oa_id) h3 
     ON alloc.oa_id = h3.oa_id; 
+0

आप दोनों के लिए धन्यवाद। उसने ऐसा किया दोनों समाधानों ने इसका समाधान किया होगा। – Nik

+0

@Nik: साथ ही त्रुटि को सही करने के साथ, अनइडेड कॉलम को समाप्त करने से आपके क्वेरी प्रदर्शन में सुधार होना चाहिए। –

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