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

Truy vấn tổng Mysql trả về kết quả không chính xác khi sử dụng nhiều phép nối

Sử dụng các tổng trực tiếp vì các phép nối của bạn có thể đang tạo ra nhiều hàng kết hợp hơn mà bạn muốn.

Hãy thử những cách sau:

SELECT id, MAX(Total) as FinalTotal ,MAX(Payment) as FinalPayment
FROM si_invoices a 
    left join 
    (select invoice_id, sum(total) as Total from si_invoice_items group by invoice_id) b 
    on a.id = b.invoice_id
    left join
    (select ac_inv_id, sum(payment) as Payment from si_payment group by ac_inv_id) c 
    on c.ac_inv_id = a.id 
group by id

hoặc nếu id là duy nhất:

    SELECT *
FROM si_invoices a 
    left join 
    (select invoice_id, sum(total) as Total from si_invoice_items group by invoice_id) b 
    on a.id = b.invoice_id
    left join
    (select ac_inv_id, sum(payment) as Payment from si_payment group by ac_inv_id) c 
    on c.ac_inv_id = a.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. SQL:Tìm bản ghi tối đa cho mỗi nhóm

  2. Laravel - cách cập nhật toàn bộ bộ sưu tập

  3. Làm cách nào để có được một tập lệnh tạo bảng trong MySQL Workbench?

  4. java.sql.SQLException:Trước khi bắt đầu tập kết quả

  5. Hiệu suất chèn hàng loạt JDBC