Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

swarley_HIMYM's avatar

get users data

public function topsales(){ $users = DB::table('results') ->select(DB::raw('count(*) as sales_count, salescode')) ->where('salescode', '<>', 1) ->groupBy('salescode') ->orderBy('sales_count', 'desc') ->take(10) ->get();

    if (true) {
      return response()->json([
        'sales top 3' => $users,
      ]);
     }
  }

i have two tables. results and user. from the results table, there are sales sales results,and i want to sort the most sales result tables and retrieve sales user data that sells them, but i can only get salescode. how can all the sales data appear

0 likes
6 replies
tisuchi's avatar

@rully

You need to add column in the ->select().

public function topsales(){ 
    $users = DB::table('results')
        ->select(DB::raw('count(*) as sales_count, salescode')) // You need to add column here that you want to retrive
        ->where('salescode', '<>', 1)
        ->groupBy('salescode')
        ->orderBy('sales_count', 'desc')
        ->take(10)
        ->get();

    if ($users->count() > 0) {
      return response()->json([
        'sales top 3' => $users,
      ]);
    }
}
swarley_HIMYM's avatar

yes, i understand. how i get user data? like email,salescode,nik,superior,status

swarley_HIMYM's avatar

@tisuchi

$close = DB::table('users')->where('result_type','=','closing')->join('results', 'users.id', '=','results.user_id') ->select(DB::raw('count(*) as sales_count, results.salescode')) ->groupBy('salescode') ->orderBy('results.salescode','ASC') ->take(3) ->get();

but the results is the same

swarley_HIMYM's avatar

@tisuchi { "status": 200, "data": [ { "sales_count": 4, "salescode": "A001" }, { "sales_count": 2, "salescode": "A002" }, { "sales_count": 1, "salescode": "A003" } ] }

this is the result. i mean, in salescode show with user data

Please or to participate in this conversation.