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

Tham gia các bảng có vấn đề SUM trong MYSQL

Khi bạn sử dụng nhiều phép nối trong truy vấn chính, bạn sẽ có một tích chéo của tất cả các bảng, do đó, tổng sẽ được nhân với số hàng khớp trong bảng khác. Bạn cần chuyển tổng vào các truy vấn con.

SELECT last_name, first_name, DATE_FORMAT(LEAST(mil_date, tm_date),  '%m/%d/%y' ) AS dates, 
        total, minutes
FROM bhds_teachers AS i
LEFT JOIN (
    SELECT ds_id, YEARWEEK(mil_date) AS week, MIN(mil_date) AS mil_date, SUM(drive_time) AS minutes
    FROM bhds_mileage
    WHERE mil_date BETWEEN '2016-04-11' AND  '2016-04-30'
    AND bhds_mileage.ds_id = 5
    GROUP BY ds_id, week) AS m 
ON m.ds_id = i.ds_id
LEFT JOIN (
    SELECT ds_id, YEARWEEK(tm_date) AS week, MIN(tm_date) AS tm_date, SUM(tm_hours) AS total
    WHERE tm_date BETWEEN '2016-04-11' AND '2016-04-30' AND bhds_timecard.ds_id = 5
    GROUP BY ds_id, week) AS t 
ON t.ds_id = i.ds_id AND t.week = m.week


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chuyển đổi ngày php sang định dạng mysql

  2. Làm cách nào để chèn tệp BLOB và CLOB trong MySQL?

  3. Hướng dẫn SQL về khóa chính - Cách xác định khóa chính trong cơ sở dữ liệu

  4. Python &MySql:Unicode và mã hóa

  5. Tiện ích mở rộng mysql không được dùng nữa và sẽ bị xóa trong tương lai:hãy sử dụng mysqli hoặc PDO để thay thế