Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете Сума от две обединени таблици

Понякога се сблъсквам с подобни въпроси. Поради множество обединения стойностите от определена таблица се дублират, утрояват и т.н. За да поправя това, обикновено правя малък хак, като разделям сумата (на конкретна таблица ) чрез броя на различни идентификатори от други маса. Това отрича ефекта от възникването на множество дубликати.

Опитайте със следната заявка:

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. Производителност на MySQL:MySQL срещу MariaDB

  2. Потърсете цяла таблица в mySQL за низ

  3. JDBC Създаване на таблица Пример за използване

  4. Как да получите и обработите mysql записи с помощта на Airflow?

  5. Кога трябва да използвам MySQL компресиран протокол?