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

MySQL phức tạp THAM GIA với GROUP BY

Tôi nghĩ rằng bạn không thể làm tất cả trong một lần như bạn đang cố gắng vì bạn muốn nhóm / tổng hợp các mục từ các bảng khác nhau cùng một lúc. Hãy thử điều này:

 select unit, name, stays, days, total_price, charges, mgmt_fee,
   (total_price*.01*mgmt_fee) AS management,
   (total_price-(total_price*.01*mgmt_fee)-charges)  AS bal
 from (
 select 
   x.unit, 
   name, 
   count(*) as stays, 
   sum(days) as days, 
   sum(total_price) as total_price, 
   charges,
   mgmt_fee
 from
 (select 
   unit , 
   datediff(depart,arrival) as days,  
   total_price
 from
   Reservations
  ) as x
 join (
   select unit, sum(amount) as charges
   from Charges
   group by unit
   ) as y
 on x.unit = y.unit
 join Unit  as u
 on u.id = x.unit
 group by unit
 ) as inner_result

Không quá gọn gàng hay thanh lịch, nhưng tôi nghĩ nó hoạt động. Lưu ý rằng bạn sẽ phải cẩn thận nếu có thể có> 1 hàng tính phí trên mỗi đơn vị. Dưới đây là một mẹo để hiển thị nó đang chạy: http://sqlfiddle.com/#!2/f05ba/18




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thoát các ký tự dấu ngoặc kép trong MySQL và Java

  2. MySQL VARCHAR như Kiểu dữ liệu có độ dài ký tự MIN và MAX

  3. Truy vấn CakePHP kinh độ vĩ độ gần nhất từ ​​cơ sở dữ liệu

  4. Làm cách nào để chuyển đổi MySQL DB sang XML?

  5. ngoại lệ giá trị null khi nhập vào cơ sở dữ liệu