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

MySQL:Сума стойности в подзаявки

Някои предложения:

  • Присъединете се към seasons веднъж. Обединяването причинява дублиране на редове от лявата таблица, така че те могат да бъдат сумирани два пъти от sum агрегат. Когато се съмнявате, стартирайте заявката без group by за примерно училище.
  • Трябва да свържете подзаявката с външната заявка с нещо като inner_schools.id = outer_schools.id
  • Но доколкото виждам, изобщо не се нуждаете от подзаявка

Например:

SELECT  schools.*
,       sum(cashflows.amount) total_branding_cashflow
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
        and cashflow_group_id = 12
GROUP BY 
        schools.id 
HAVING  total_branding_cashflow BETWEEN 50000000 AND 100000000

За множество категории можете да използвате случай:

SELECT  schools.*
,       sum(case when cashflow_group_id = 1 then cashflows.amount end) total1
,       sum(case when cashflow_group_id = 12 then cashflows.amount end) total12
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
GROUP BY 
        schools.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. php imap - вземете тялото и направете обикновен текст

  3. Как да създадете глобален конфигурационен файл?

  4. mysql заявка:SELECT DISTINCT колона1, GROUP BY колона2

  5. SQL заявка за актуализиране с група по клауза