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

Mysql присъединяване и сумата е удвояване резултат

Удвоява се, защото имате заглавие, повтаряно в таблиците за фондове и приходи. Това умножава броя на записите, където съвпада. Това е доста лесно да се види, ако премахнете агрегатните функции и погледнете необработените данни. Вижте тук

Начинът да заобиколите това е да създадете вградени изгледи на вашите агрегати и да се присъедините към тези резултати.

ИЗБЕРЕТЕ R.title_id, R.revenue, R.cost, F.interest FROM (SELECT title_id, Sum(revenue) revenue, Sum(cost) cost) FROM revenue GROUP BY revenue.title_id) r LEFT JOIN ( ИЗБЕРЕТЕ title_id, Sum(лихва) лихва ОТ фонд GROUP BY title_id) f ON r.title_id =F.title_id  

изход

<предварителен код>| TITLE_ID | ПРИХОДИ | ЦЕНА | ЛИХВА |------------------------------------------------| 1 | 30 | 11 | 30 || 2 | 30 | 11 | 30 || 3 | 30 | 11 | 30 || 4 | 30 | 11 | 30 |

демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разработка на Rails - Не мога да се свържа с MySQL сървър на 'localhost' (10061)

  2. SQL разделен ред, разделен със запетая

  3. Обявяване на ClusterControl 1.4.1 - изданието ProxySQL

  4. Как да дефинирате цяло число без знак в SQLAlchemy

  5. Как да съхранявате .pdf файлове в MySQL като BLOB с помощта на PHP?