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

Oracle SQL पदानुक्रमित क्वेरी:पदानुक्रम को समतल करें और एकत्रीकरण करें

पोडिलुस्का का सुझाव अच्छा है। यदि आपके पास Oracle 11g R2 है, तो सामान्य टेबल एक्सप्रेशन जाने का रास्ता है। नए सिंटैक्स की पुनरावर्ती प्रकृति आपको sys_connect_by_path को छोड़ने की अनुमति देगी instr . के साथ संयुक्त , जो आपके प्रदर्शन को गंभीर रूप से चोट पहुँचाने वाला है।

इसे आजमाएं:

select
  child,
  sum(total_quantity) total_quantity
from (
  with h (parent, child, isleaf, quantity, total_quantity) as (
    select 
      parent,
      child,
      isleaf,
      quantity,
      quantity total_quantity
    from
      itemhier
    where
      parent = 'ASSY001' 
    union all
    select
      ih.parent,
      ih.child,
      ih.isleaf,
      ih.quantity,
      ih.quantity * h.total_quantity total_quantity
    from
      itemhier ih
    join 
      h on h.child = ih.parent
  )
  select * from h
  where isleaf = 1
)
group by child;

यहाँ sqlfiddle है:http://sqlfiddle.com/#!4/9840f/6



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्तंभ टिप्पणियों के साथ Oracle तालिका बनाएं

  2. किसी विशिष्ट मान के लिए तालिका में केवल 3 पंक्तियों को जोड़ने की अनुमति दें

  3. पेंटाहो डेटा इंटीग्रेटर के साथ कैसेंड्रा के कनेक्शन की जांच कैसे करें

  4. क्या हमारे पास एक ही एएसपीनेट एप्लिकेशन में 2 अलग-अलग डेटाबेस से 2 अलग ओरेकल निर्भरता हो सकती है?

  5. जावा एसक्यूएल अपवाद:बंद परिणामसेट:अगला भले ही न तो कनेक्शन या परिणामसेट बंद हो जाता है