Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pilih Jumlah dari dua tabel yang digabungkan

Saya kadang-kadang menghadapi pertanyaan semacam ini. Karena beberapa gabungan, nilai dari tabel tertentu diduplikasi, digandakan, dll. Untuk memperbaikinya, saya biasanya melakukan peretasan kecil dengan membagi jumlah (pada tabel tertentu ) dengan jumlah ID yang berbeda dari lainnya meja. Ini meniadakan efek dari banyak duplikat yang terjadi.

Coba kueri berikut:

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. Menghapus baris dengan gabungan dalam

  2. Mysql pilih nilai hitungan dari satu kolom

  3. Hibernate SQL QUERY, masalah dengan tipe data TEXT di mysql

  4. InnoDB:Tidak dapat mengunci kesalahan ./ibdata1:35

  5. Cara menghitung ulang bidang di GROUP