Mysql
 sql >> Base de données >  >> RDS >> Mysql

Générateur de requêtes éloquentes Laravel - Somme avec groupe sur relation

Dans le SQL généré, vous devez sélectionner la colonne par laquelle vous groupez et vous devez appeler le get() après le groupBy sinon vous appelleriez le groupBy sur la collection, pas sur l'objet générateur de requêtes. Vous devriez donc pouvoir faire :

Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();

Ou moins éloquent

DB::table('transaction')
->join(
    'transaction_type',
    'transaction_type.id',
    '=',
    'transaction.transaction_type_id'
)->selectRaw('transationType.category, sum(amount)')
->groupBy('transactionTyle.category')
->get();