groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $bestInShowWinnerQuery->vehicle; } function bestInShow2ndWinner() { $bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id') ->groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $bestInShow2ndWinnerQuery->vehicle; } function pcWinner() { $peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id') ->groupBy('peoples_choice.vehicle') ->selectRaw('*, sum(pc_count) as totalscore') ->whereNotIn('vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $peoplesChoiceWinnerQuery->vehicle; } function pc2ndWinner() { $peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id') ->groupBy('peoples_choice.vehicle') ->selectRaw('*, sum(pc_count) as totalscore') ->whereNotIn('vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $peoplesChoice2ndWinnerQuery->vehicle; } function zeroTo42Winner() { $zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id') ->groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.year', '>=', 0) ->where('vehicles.year', '<=', 1942) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $zeroTo43Query->vehicle; } function fortyThreeToSixtyNineWinner() { $fortyThreeToSixtyNineQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id') ->groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.year', '>=', 1943) ->where('vehicles.year', '<=', 1969) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $fortyThreeToSixtyNineQuery->vehicle; } function seventyToTwoThousandWinner() { $seventyToTwoThousandQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id') ->groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.year', '>=', 1970) ->where('vehicles.year', '<=', 2000) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $seventyToTwoThousandQuery->vehicle; } function TwoThousandOneToCurrentWinner() { $TwoThousandOneToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id') ->groupBy('vehicles.id') ->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore') ->whereNotIn('vehicle_scores.vehicle', function($query){ $query->select('vehicle')->from('car_show_winners'); }) ->where('vehicles.year', '>=', 2001) //->where('vehicles.year', '<=', 1997) ->where('vehicles.doNotJudge', '=', 0) ->orderBy('totalscore','desc') ->first(); return $TwoThousandOneToCurrentQuery->vehicle; } // Truncate table first CarShowWinner::truncate(); //Insert Best In Show Winner CarShowWinner::updateOrCreate( [ 'category' => '6', 'place' => 'first' ], [ 'vehicle' => bestInShowWinner() ] ); //Insert People's Choice Winner CarShowWinner::updateOrCreate( [ 'category' => '3', 'place' => 'first' ], [ 'vehicle' => pcWinner() ] ); //Insert Year Award Winners //0-1942 CarShowWinner::updateOrCreate( [ 'category' => '17', 'place' => 'first' ], [ 'vehicle' => zeroTo42Winner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '17', 'place' => 'second' ], [ 'vehicle' => zeroTo42Winner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '17', 'place' => 'third' ], [ 'vehicle' => zeroTo42Winner() ] ); //1943-1969 CarShowWinner::updateOrCreate( [ 'category' => '18', 'place' => 'first' ], [ 'vehicle' => fortyThreeToSixtyNineWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '18', 'place' => 'second' ], [ 'vehicle' => fortyThreeToSixtyNineWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '18', 'place' => 'third' ], [ 'vehicle' => fortyThreeToSixtyNineWinner() ] ); //1970-2000 CarShowWinner::updateOrCreate( [ 'category' => '20', 'place' => 'first' ], [ 'vehicle' => seventyToTwoThousandWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '20', 'place' => 'second' ], [ 'vehicle' => seventyToTwoThousandWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '20', 'place' => 'third' ], [ 'vehicle' => seventyToTwoThousandWinner() ] ); //2001-Current CarShowWinner::updateOrCreate( [ 'category' => '19', 'place' => 'first' ], [ 'vehicle' => TwoThousandOneToCurrentWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '19', 'place' => 'second' ], [ 'vehicle' => TwoThousandOneToCurrentWinner() ] ); CarShowWinner::updateOrCreate( [ 'category' => '19', 'place' => 'third' ], [ 'vehicle' => TwoThousandOneToCurrentWinner() ] ); } }