Я хочу сделать некоторые расчеты для столбца total
, добавив две метки столбцов для конкретного std_id
.MYSQL UPDATE TABLE ОШИБКИ
Например 30+25=55
, всего = 55 для std_id 32
+--------+-----------+-------+----+----------------+-------+
| std_id | course_id | marks | mp | subject | total |
+--------+-----------+-------+----+----------------+-------+
| 32 | 40 | 30.00 | 22 | Elective Maths | 0 |
| 32 | 40 | 25.00 | 12 | Elective Maths | 0 |
| 39 | 40 | 30.00 | 22 | Elective Maths | 0 |
| 39 | 40 | 20.00 | 12 | Elective Maths | 0 |
+--------+-----------+-------+----+----------------+-------+
Я пытался что-то вроде
update student_reports
set total= sum(marks)
where std_id=std_id;
, но не работает, любая помощь очень ценится, особенно тот, который делает не требуется изменять структуру стола
44445 +16410617451515053691368888В первой таблице выше, с помощью одного course_id, код по GILEYS вычисленной общее идеально
Update student_reports г, ( выберите std_id, сумма (знаков) в качестве общей от student_reports группы по std_id ) t set r.total = t.tot где r.std_id = t.std_id;
Мой следующий вопрос, что если я добавить еще одно значение course_id, чтобы сделать его (40,43) к столу, как я могу сделать новые итоги
+ --- ----- + ----------- + ------- + ---- + ---------------- + - ----- +
| std_id | course_id | знаки | mp | предмет | всего |
+ -------- + ----------- + ------- + ---- + ----------- ----- + ------- +
| 32 | 40 | 30,00 | 22 | Избирательная математика | 0 |
| 32 | 40 | 25.00 | 12 | Избирательная математика | 0 |
| 39 | 40 | 30,00 | 22 | Избирательная математика | 0 |
| 39 | 40 | 20.00 | 12 | Избирательная математика | 0 |
| 32 | 43 | 40,00 | 22 | Core Maths | 0 |
| 32 | 43 | 20.00 | 12 | Core Maths | 0 |
| 39 | 43 | 45,00 | 22 | Core Maths | 0 |
| 39 | 43 | 40.00 | 12 | Core Maths | 0 |
+ -------- + ----------- + ------- + ---- + ----------- ----- + ------- +
Я пытался что-то вроде
обновление student_reports г (выберите std_id, course_id, предмет, сумма (Marks) в общей сложности из группы student_reports by std_id) t set r.total = t.tot где r.std_id = t.std_id И r.course_id = t.course_id И r.subject = t.subject;
но не дает подведения итогов, как я бы эксперт, пожалуйста, нужна ваша помощь снова
для достижения желаемых результатов ниже
+ -------- + - --------- + ------- + ---- + ---------------- + ------- +
| std_id | course_id | знаки | mp | предмет | всего |
+ -------- + ----------- + ------- + ---- + ----------- ----- + ------- +
| 32 | 40 | 30,00 | 22 | Избирательная математика | 55 |
| 32 | 40 | 25.00 | 12 | Избирательная математика | 55 |
| 39 | 40 | 30,00 | 22 | Избирательная математика | 50 |
| 39 | 40 | 20.00 | 12 | Избирательная математика | 50 |
| 32 | 43 | 40,00 | 22 | Core Maths | 60 |
| 32 | 43 | 20.00 | 12 | Core Maths | 60 |
| 39 | 43 | 45,00 | 22 | Core Maths | 95 |
| 39 | 43 | 40,00 | 12 | Core Maths | 95 |
+ -------- + ----------- + ------- + ---- + ----------- ----- + ------- +
Вы хотите обновить любую запись в таблице или просто получить итоговые оценки любого учащегося? – sahil
может быть дубликат http: // stackoverflow.com/questions/653826/update-with-sum-in-mysql (но как вы хотите только для одного ID, он может работать с подзапросом) – Blag
@ Gmiley есть код, который будет делать обновление? – cammpopp