Похоже, проблема в том, что вы используете whereDate()
неправильно, который, согласно документации Laravel , должен использоваться следующим образом:
->whereDate('created_at', '2016-12-31')
То естьвы передаете столбец даты в качестве параметра first , а дату литерал в качестве параметра second .Видимо, ваш код работает, но не так, как вы намерены.Я думаю, что ваш вызов whereDate
должен быть просто еще одним условием в предложении ON
.Попробуйте использовать эту версию:
$contracts = DB::table('completed_contracts cc')
->select(DB::raw("COUNT(cc.id) AS numOfCompletedContracts"),
DB::raw("COUNT(ac.id) AS numOfCompletedLate")
)
->leftJoin('awarded_contracts ac', function($q) {
$q->on('cc.awarded_contract_id', '=', 'ac.id')
->on('ac.completion_date', '<', 'cc.actual_completion_date');
})
->get();