Я создаю приложение табель успеваемости.Мой взгляд на отчетный лист ученика выглядит так:
мой взгляд ПРЕДМЕТ CA 1 CA 2 CA СРЕДНЕГО ЭКЗАМЕНА ОБЩАЯ ПРОЦЕНТНАЯ ПОЗИЦИЯ ПРЕДМЕТ Математика 80 70 75.0000 56 65.50000000 1-й английский 70 45 57.5000 100 78.75000000 3rd
Биология 89 23 56.0000 90 73.00000000 Четвёртый
В моей таблице результатов в БД есть столбцы: student_id, studentClass, CA1, CA2, экзамен и другие необходимые элементы.У меня нет общего процента, CA Среднее или Общий процентный столбец.Общий процент определяется по общему проценту / количеству субъектов (в приведенном выше примере: 72.416666666667).Среднее значение CA и общий процент рассчитываются на лету с помощью построителя запросов, как вы найдете в моем контроллере ниже.
Мне нужно рассчитать 1. Позиции в классе, например, Элементарный 1A.Каждому ученику назначается должность на основе общего процента.как 1-й, 2-й, 3-й и т. д. И, конечно, если есть связь, следующая позиция пропускается.2. Позиции на руках, например, у Eementary может быть Elementary 1A, 1B, 1C и т. Д. Мне нужно назначить позиции ученикам по общему проценту по сравнению со всеми учениками в Elementary (1A, 1B, 1C и т. Д.).3. Позиции субъекта: это рассчитывается с использованием общего процента, полученного учеником по каждому предмету, по сравнению с другими учениками в том же классе, например, Элементарный 1А.Это последний столбец, на мой взгляд выше.Я мог бы найти решение для этого.
Я искал решения. Что я видел до сих пор, были решения, в которых Позиция (ранг) вычисляется с использованием столбца в таблице БД.В моем случае у меня нет такой колонки, так как я использовал QB для вычисления на лету.Я пытался реализовать этот метод, вычисляя по крайней мере CA Среднее и Общее процентное значение во время вставки, но получил ошибку «неподдерживаемый операнд».
Мой контроллер:
открытая функция studentresultsheet (запрос $ request) {
$stclass = $request->get('stclass');
$myclass = Stclass::find($request->get('stclass'))->name;
$studentId = $request->get('studentId');
$studentname = Student::find($request->get('studentId'))->surname;
$session= $request->get('sessionnow');
$term = $request->get('term');
$myids = Stclass::find($stclass)->students;
// $dodo = DB::table('results')
// -> where('studentClass', $stclass)->where('session', $session)->where('term', $term)
// ->selectRaw('results.studentId')->distinct()->get();
$resultpercent = DB::table('results')
-> where('studentClass', $stclass)->where('session', $session)->where('term', $term)->where('studentId', $studentId)
->selectRaw("SUM((results.exam + (results.test1 + results.test2)/2)/2)/(COUNT(results.subject)) as overallpercent")->get();
$dodo = DB::table('results')
-> where('studentClass', $stclass)->where('session', $session)->where('term', $term)
->selectRaw('results.studentId')->get();
$results = DB::table('results')
->where('studentClass', $stclass)->where('session', $session)->where('term', $term)->where('studentId', $studentId)
->selectRaw('results.*, (results.test1 + results.test2)/2 as cav, (results.exam + (results.test1 + results.test2)/2)/2 as totalmark')->get();
return view('admin.results.studentresultsheet', compact('results', 'myclass', 'studentname','resultpercent', 'countsubjects'));
}
Спасибо.