![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Rian |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
сдраствуйте например есть таблицаЖ
студенты -математика -физика -чистописание -пение -музыка и в каждой оценки за год нужно сделать итоговою, в которой будет выведена информация о всех студентах и средний бал для каждого предмета ------------- математика--------физика----------чистописание --------------------------------------------------------------------- иванов -----------5--------------- - --------------------3-------- --------------------------------------------------------------------- петров-------------6---------------7-------------------- - ------- для одной подчиненной таблицы LEFT JOIN нормально делает а больше начинает множить записи... как правильно делать я пробую users LEFT JOIN (мат LEFT JOIN физ LEFT JOIN чист) on users.id Сообщение отредактировано: Rian - 14.04.2011 16:07 -------------------- Objective-C, Unity3d
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Где-то в вопросе было указано про сложение или вычисление среднего? Не было. Даже если так. Вот так - все оценки по пользователям суммируются:
SQL SELECT users.name, Sum(math.mark) AS SumOfmark, Sum(physics.mark) AS SumOfmark1, Sum(russian.mark) AS SumOfmark2 FROM ((users LEFT JOIN math ON users.ID = math.userID) LEFT JOIN russian ON users.ID = russian.userID) LEFT JOIN physics ON users.ID = physics.userID GROUP BY users.name; Где множит записи? ![]() Вот так - среднее: SQL SELECT users.name, Avg(math.mark) AS AvgOfmark, Avg(physics.mark) AS AvgOfmark1, Опять множит?Avg(russian.mark) AS AvgOfmark2 FROM ((users LEFT JOIN math ON users.ID = math.userID) LEFT JOIN russian ON users.ID = russian.userID) LEFT JOIN physics ON users.ID = physics.userID GROUP BY users.name; ![]() |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 2:06 |