Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel menghitung jumlah dua kolom dengan kondisi

Anda bisa meneruskan beberapa panggilan balik ke sum() . koleksi metode:

$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 agak sulit untuk digunakan di sini tetapi memanggil withAggregate bekerja.

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. Bergabunglah dengan tabel dengan nilai MAX dari yang lain

  2. Dapatkan Nilai LAMA di Pemicu MySQL SETELAH Pernyataan Pembaruan

  3. Bagaimana cara membagi string nama di mysql?

  4. Di MySQL, bagaimana cara membangun indeks untuk mempercepat kueri ini?

  5. Bagaimana cara menambahkan batasan bukan nol ke kolom yang ada di MySQL