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

SQL:तालिकाओं में शामिल होने के बाद SUM () फ़ंक्शन गलत मान लौटाता है

मुद्दा एक कार्टेशियन उत्पाद है (जहां एक तालिका में पंक्तियों को अन्य तालिकाओं में पंक्तियों से गुणा किया जा रहा है)। निम्नलिखित दृष्टिकोण यह धारणा बना रहा है कि प्रत्येक परियोजना में कर्मचारियों के साथ एक कार्यभार होता है (जिनमें से सभी सभी कर्मचारियों के लिए खाते हैं क्योंकि आपकी क्वेरी कर्मचारी तालिका में शामिल नहीं होती है) और कार्य। अगर ऐसा नहीं है, तो बाहरी जॉइन बनाम इनर जॉइन करने पर विचार करें।

परियोजना संख्या के आधार पर प्रत्येक एकत्रीकरण को अपनी व्युत्पन्न तालिका में करने का विचार है। फिर हम सार्थक परिणाम प्राप्त करने के लिए परियोजना संख्या द्वारा प्रत्येक व्युत्पन्न तालिका में शामिल हो सकते हैं।

SELECT
p.NAME,
w.workload_sum AS "Total Workload",
e.employee_count AS "Total Employees",
t.task_count AS "Finished Tasks"
from p 
JOIN (select pno, sum(workload) as workload_sum
        from w
       group by pno) w ON (w.pno=p.pnumber)
JOIN (select pno, count(distinct w.essn) as employee_count
        from w
       group by pno) e ON (e.pno=p.pnumber)
JOIN (select pno, count(distinct t.name) as task_count
        from t
       group by pno) t ON (t.pno=p.pnumber)
WHERE t.END_DATE is NOT NULL;



  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 में RTRIM () फ़ंक्शन

  2. ऑरैकल पैकेज के अंदर निर्भरता कैसे खोजें?

  3. ORA-01722:अमान्य संख्या, विशिष्ट पंक्ति खोजें

  4. PDO_OCI - एक क्लॉब फील्ड में

  5. JSON_OBJECT () Oracle में फ़ंक्शन