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

Laravel tính toán tổng của hai cột với một điều kiện

Bạn chỉ có thể chuyển một vài lệnh gọi lại đến sum() của bộ sưu tập phương pháp:

$warehouses_collection->map(function ($warehouse) {
    return (object) [
        'id' => $warehouse->id,
        'warehouse' => $warehouse->warehouse,
        'total_income' => collect($warehouse->sales)->sum(function ($sale) {
            ((int) $sale->price) * $sale->quantity * ($sale->status == 1 ? 1 : -1)
        })
    ];
});

WithSum hơi khó sử dụng ở đây nhưng gọi withAggregate hoạt động.

Warehouse::withAggregate(
    'sales as total_income',
    'sum(case when status = 1 then price * quantity when status = 2 then price * quantity * -1 else 0 end)'
)->get() 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đã xảy ra lỗi JNI, vui lòng kiểm tra cài đặt của bạn và thử lại trong Eclipse x86 Windows 8.1

  2. PHP PDO với foreach và tìm nạp

  3. Người dùng MySQL được chỉ định làm trình định nghĩa không tồn tại

  4. Umlauts Đức trong MYSQL INSERT

  5. Làm thế nào để kiểm tra trong một bảng khác không có dữ liệu trong khi thực hiện tham gia mysql?