[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Need helр
taren
Вобщем ситуация такая.
У меня 3 таблицы
1: names (name_id, name);
2: predmets (predmet_id, predmet);
3: balls (ball_id, name_id, predmet_id, ball);

Мне нужно, чтобы на print выходила таблица из balls:

x(j) j1, j2...
y(i) xy11 xy21 ...
i1,
12
.
.
.

двумерный массив где
x(j) - это name -из tbl.names соответствующий name_id из tbl.balls
y(i) - это predmet - из tbl.predmets соответствующий predmet_id из balls
xy (ij) это среднее значение ( (sum (ball) where predmet_id одинаковый) /количество оченок where predmet_id одинаковый) соответствующее name_id , predmet_id

Я предполагаю, что нужно будет в создать таблицу и сделать запрос, чтобы туда формировались среднне значение оценки соответствующее ID предмета и ID имени , а потом уже вывод этого массива , но только как это сделать точно не могу понять, вот если бы кто помог или на мысль бы натолкунул бы. Заранее спасибо!!!




Спустя 6 часов, 17 минут, 50 секунд (25.01.2008 - 10:12) disc написал(а):
тееб тут нужен SELECT и LEFT JOIN к примеру, но с твоими x(j), j1 i1 12 и много вертикальных точек я мало что понял, объясни задачу поконкретнее.

Спустя 2 минуты, 11 секунд (25.01.2008 - 10:14) VladimirS написал(а):
Создавать дополнительную таблицу - это неправильно, т.к. данные в ней будут повторять данные из уже существующих таблиц. А такого в реляционной БД быть не должно.

Если решать задачу "в лоб", то можно в цикле выполнять запрос
SELECT ....... WHERE names.id=$id AND predmets.id=$id

т.е. этот запрос будет выполняться для каждой ячейки таблицы.

По-идее, можно сформировать всю таблицу одним сложным запросом, но сходу я его не напишу. Тут нужно поэкспериментировать.

Спустя 6 минут, 29 секунд (25.01.2008 - 10:20) taren написал(а):
Цитата(VladimirS @ 25.1.2008, 7:14) [snapback]32595[/snapback]
Создавать дополнительную таблицу - это неправильно, т.к. данные в ней будут повторять данные из уже существующих таблиц. А такого в реляционной БД быть не должно.

Если решать задачу "в лоб", то можно в цикле выполнять запрос
SELECT ....... WHERE names.id=$id AND predmets.id=$id

т.е. этот запрос будет выполняться для каждой ячейки таблицы.

По-идее, можно сформировать всю таблицу одним сложным запросом, но сходу я его не напишу. Тут нужно поэкспериментировать.

ну примерно так я и думал , только вот как сделать, хм, сегодня буду мучать, ну спасибо за совет, что таблицу не надо формировать, а как сформировать среднее значение подскажите

Спустя 4 минуты, 34 секунды (25.01.2008 - 10:25) disc написал(а):
выложи дамп своей базы с данными чтоб можно было попробовать составить запрос, тоьлко много значений не выкладывай.

Спустя 22 часа, 19 минут, 8 секунд (26.01.2008 - 08:44) taren написал(а):
Цитата(disc @ 25.1.2008, 7:25) [snapback]32601[/snapback]
выложи дамп своей базы с данными чтоб можно было попробовать составить запрос, тоьлко много значений не выкладывай.


Вот сюда я выложил дамп http://yepi.sakha.ru/2/school.rar
А вот сюда выложил кое какие наброски, (ну чтобы имели представление о том что хочу сделать)
http://yepi.sakha.ru/2/php.rar

Если есть возможность посмотрите, подскажите что дакак, я новичек в этом деле

Спустя 2 дня, 1 час, 19 минут (28.01.2008 - 10:03) taren написал(а):
Вопрос по-прежнему актуален.
Профи- помогите bc.gif

Спустя 36 минут, 7 секунд (28.01.2008 - 10:39) disc написал(а):
Отпиши мне в асю, там подробнее расскажи что надо, т.к. не сильно понятно что надо на выходе получить.

Спустя 11 месяцев, 21 час, 31 минута, 30 секунд (29.12.2008 - 08:11) arkady написал(а):
я не могу отправить сообщение, так как не могу убрать предложенный captcha project

Спустя 8 часов, 25 секунд (29.12.2008 - 16:11) Alchemist написал(а):
если я правильно понял, то собственно задание будет звучать так:

"получить средний балл каждого человека по каждому предмету."

безо всяких (ху) в н-цатых степенях...

Эта задача решается одним запросом с помощью SQL функции AVG() и простого объединения всех трех таблиц.

ЗЫ: для нечитающий на английском, тут можно найти описание функции на русском: http://www.mysql.ru/docs/man/Group_by_functions.html


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.