Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Tính tổng các giá trị trong truy vấn con

Một số gợi ý:

  • Tham gia vào seasons Một lần. Một phép nối làm cho các hàng từ bảng bên trái bị trùng lặp, vì vậy chúng có thể được cộng lại hai lần bằng sum tổng hợp. Khi nghi ngờ, hãy chạy truy vấn mà không có nhóm group by cho một trường học ví dụ.
  • Bạn phải liên kết truy vấn con với truy vấn bên ngoài bằng một thứ như inner_schools.id = outer_schools.id
  • Nhưng theo những gì tôi có thể thấy, bạn không cần một truy vấn con nào cả

Ví dụ:

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

Đối với nhiều danh mục, bạn có thể sử dụng một trường hợp:

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. Gửi ArrayList từ android sang php MySQL

  2. Xác thực biểu mẫu

  3. Laravel - Phân loại các bản ghi ngẫu nhiên

  4. SQL tách các giá trị thành nhiều hàng

  5. Tạo cơ sở dữ liệu mới với MySQL Workbench