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

Truy vấn hùng hồn về Laravel

Đây không phải là câu trả lời đầy đủ nhưng nó gần đúng. Mặc dù vậy, cho dù tôi xử lý dữ liệu như thế nào, tôi không thể tìm ra cách bạn sử dụng cash_has . Ngoài ra, tôi đang giữ nó là SQL thô vì tôi cảm thấy nó sẽ hữu ích hơn và không khó để chuyển đổi trở lại trình tạo truy vấn. Tôi cũng không biết tên cột chính xác nên bạn có thể phải sửa một số trong số đó.

SELECT
    COALESCE(outlets_admin.name, outlets.name) AS outlet, 
    COALESCE(boys_admin.name, boys.name) AS delivery_boy,
    SUM(IF(cm.source_type = 'admin', amount, 0)) AS cash_taken,
    SUM(IF(cm.source_type = 'deliveryBoy', amount, 0)) AS cash_returned,
    SUM(IF(cm.source_type = 'admin', amount, 0)) - SUM(IF(cm.source_type = 'deliveryBoy', amount, 0)) AS cash_has
FROM delivery_cash_manages cm
LEFT JOIN outlets ON outlets.id = cm.destination_id AND cm.source_type = 'deliveryBoy'
LEFT JOIN delivery_boys boys ON boys.id = cm.source_id AND cm.source_type = 'deliveryBoy'
LEFT JOIN outlets outlets_admin ON outlets_admin.id = cm.source_id AND cm.source_type = 'admin'
LEFT JOIN delivery_boys boys_admin ON boys_admin.id = cm.destination_id AND cm.source_type = 'admin'
WHERE COALESCE(outlets.id, outlets_admin.id) = '2'  #  This is where you plug in your $outlet_id
GROUP BY outlet, delivery_boy

Tuy nhiên, lý do bạn gặp lỗi với truy vấn của mình là nếu bạn nhóm theo bất kỳ thứ gì, bạn cần phải nhóm theo mọi thứ bạn chọn mà không phải là các cột tổng hợp (các hàm như sum, max, avg).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sao lưu từ xa bằng innobackupex

  2. thay đổi hàng loạt các loại cột trong MySQL

  3. Lệnh cập nhật MySQL không hoạt động

  4. Cách chọn giá trị từ JSON trong mysql

  5. Sử dụng PHPExcel để tạo các tệp excel được tạo tự động