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

दो सम्मिलित तालिकाओं में से योग का चयन करें

मुझे कई बार इस तरह के सवालों का सामना करना पड़ता है। एकाधिक जुड़ने के कारण, किसी विशेष तालिका के मान डुप्लिकेट, तीन प्रतियों आदि हो जाते हैं। इसे ठीक करने के लिए, मैं आम तौर पर योग को विभाजित करके एक छोटी सी हैक करता हूं (विशेष तालिका पर) ) अन्य . से भिन्न Id(Ids) की गणना द्वारा मेज़। यह कई डुप्लीकेट होने के प्रभाव को नकारता है।

निम्न क्वेरी का प्रयास करें:

select i.id, 
       (sum(pr.amount * pr.quantity) / IF(count(distinct pm.id) > 0, count(distinct pm.id), 1) as productAmount, 
       (sum(pm.amount) / IF(count(distinct pr.id) > 0, count(distinct pr.id), 1) as paymentAmount
from invoices as i
left join products as pr on pr.invoice_id=i.id
left join payments as pm on pm.invoice_id=i.id
group by i.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. कॉलम अपडेट करने के लिए डेटाबेस पर सभी तालिकाओं के माध्यम से कैसे लूप करें

  2. कोडइग्निटर - ses_destroy () बहुत सारे CPU का उपयोग करता है

  3. एकाधिक अभी तक परस्पर अनन्य विदेशी कुंजी - क्या यह जाने का रास्ता है?

  4. चेतावनी:session_start ():सत्र कुकी नहीं भेज सकता - हेडर पहले से ही भेजे गए हैं (आउटपुट शुरू हुआ

  5. एक MySQL डेटाबेस से यादृच्छिक डेटा प्राप्त करना लेकिन डेटा दोहराना नहीं