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

SYS_CONNECT_BY_PATH का उपयोग करके Oracle संचयी गणना

केवल आपके SQL Fiddle नमूना डेटा पर परीक्षण और त्रुटि के साथ, यह वह क्वेरी है जो आपका अपेक्षित डेटा लौटा रही है:

SELECT SYS_CONNECT_BY_PATH(firmware_version, '/') path_,
  firmware_version,
  device_count,
  dmc_id,
  charging_group_id,
  IMAGE_PREREQUISITE,
  (SELECT SUM(device_count)
  FROM DM_TEMP_SUMMING_DVC_BY_FW t2
  START WITH t1.firmware_version = t2.firmware_version
        and T1.dmc_id = T2.dmc_id
        and T1.charging_group_id = T2.charging_group_id
  CONNECT BY nocycle PRIOR firmware_version=image_prerequisite and prior dmc_id = dmc_id and prior charging_group_id = charging_group_id
  ) sum_device
FROM DM_TEMP_SUMMING_DVC_BY_FW t1
START WITH image_prerequisite IS NULL
CONNECT BY nocycle PRIOR firmware_version = image_prerequisite
    and prior dmc_id = dmc_id
    and prior charging_group_id = charging_group_id

नोट: हां, charging_group_id और dmc_id आपके अपेक्षित परिणाम के लिए बहुत महत्वपूर्ण हैं, जैसा कि क्रोकोडिल्को ने अपनी उपरोक्त टिप्पणी में सही उल्लेख किया है।




  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 OLE DB प्रदाता SSIS में सूचीबद्ध नहीं है

  2. Oracle JDBC:डबल में अंडरफ्लो

  3. मैं संग्रहीत प्रक्रिया से प्रभावित रिकॉर्ड्स की संख्या कैसे प्राप्त कर सकता हूं?

  4. ऑरैकल में सशर्त चयन कथन

  5. Oracle कर्सर का रिटर्न प्रकार