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

Oracle 11g CONNECT BY और एकाधिक तालिकाओं का उपयोग करके दृश्य बनाएँ

आप ऐसा कुछ कर सकते हैं:

SQL> SELECT *
  2    FROM (SELECT empl_id, ename, report_to,
  3                 member_id, board_position,
  4                 MAX(lvl) over(PARTITION BY empl_id) maxlvl, lvl
  5             FROM (SELECT connect_by_root(e.empl_id) empl_id,
  6                          connect_by_root(e.ename) ename,
  7                          bm.empl_id report_to,
  8                          LEVEL lvl, bp.*
  9                      FROM emp e
 10                      LEFT JOIN board_members bm
 11                             ON e.empl_id = bm.empl_id
 12                      LEFT JOIN board_positions bp
 13                             ON bm.member_id = bp.member_id
 14                    CONNECT BY NOCYCLE e.empl_id = PRIOR e.report_to
 15                           AND (PRIOR bp.board_position IS NULL
 16                                OR PRIOR bp.board_position != 'LDRSHPCOMM')))
 17   WHERE lvl = maxlvl;

EMPL_ID ENAME                            REPORT_TO MEMBER_ID BOARD_POSITION     
------- -------------------------------- --------- --------- ------------------ 
FLUNKY  Ida Dunnit                       INFGUY    CIO       LDRSHPCOMM         
HITECH  Number 2                         INFGUY    CIO       LDRSHPCOMM         
INFGUY  Comp U Turk                      INFGUY    CIO       LDRSHPCOMM         
LOTECH  Number 3                         INFGUY    CIO       LDRSHPCOMM         
OPSGUY  Meikut Work                      OPSGUY    COO       LDRSHPCOMM         
PROGMR  Nameless Blameless               INFGUY    CIO       LDRSHPCOMM         
TOPDOG  Big Guy                          TOPDOG    CEO       LDRSHPCOMM         
WALLET  Money Bags                       WALLET    CFO       LDRSHPCOMM      

मेरे पास क्लॉज के साथ कोई स्टार्ट नहीं है क्योंकि मैं सभी कर्मचारियों के लिए पदानुक्रमित क्वेरी शुरू करना चाहता हूं। प्रत्येक कर्मचारी के लिए मैं पदानुक्रमित डेटा के माध्यम से चलता हूं जब तक कि मुझे एक प्रबंधक नहीं मिल जाता है जो नेतृत्व समिति (क्लॉज से कनेक्ट) में बोर्ड का सदस्य है।

बाहरी क्वेरी प्रासंगिक पंक्तियों को फ़िल्टर करती हैं।




  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.ManagedDataAWS RDS DB तक पहुँच - TCPS:अमान्य SSL वॉलेट (मैजिक)

  2. AWS EC2 से AWS RDS में Oracle डेटाबेस माइग्रेट करना, भाग 3

  3. SQLcl (Oracle) में JSON स्वरूपित क्वेरी परिणामों को कैसे सुंदर बनाएं

  4. Oracle Pro*C/OCI SIGSEGV/SIGABRT और दोस्तों के लिए हैंडलर स्थापित करें - क्यों, और कैसे अक्षम करें?

  5. डेटाबेस लिंक पर ऑरैकल में एक संग्रहीत फ़ंक्शन को कॉल करना (जो उपयोगकर्ता द्वारा परिभाषित प्रकार की एक सरणी देता है)