Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Как сделать переменное количество столбцов (KnalB) 20/05/2011 - 11:56:08
      Re: Как сделать переменное количество столбцов (Akina) 20/05/2011 - 14:37:46
      Re: Как сделать переменное количество столбцов (KnalB) 20/05/2011 - 14:58:03
      Re: Как сделать переменное количество столбцов (Akina) 21/05/2011 - 09:58:55



From: KnalB - 20/05/2011 - 11:56:08
Subject:Как сделать переменное количество столбцов
-----------------
Еще раз извините за беспокойство.
Меня попросили помочь написать рейтинг... но что-то у меня не получается. Чувствую, что это можно как то сделать, а как догадаться не могу :(
Помогите, пожалуйста...

Есть три таблицы.

Механизм этих трех таблиц прост:
в первую заносятся участники
во вторую заносятся наименования турниров
в третью заносятся результаты

Среди участников есть те кто постоянно играют, а есть те кто приходит раз от раза... но учитывать надо всех :( .

И надо вывести таблицу рейтинга:

Номер по рейтингу (у кого суммарное количество больше тот и первый т.е. простой сортировкой по сумме)
Фамилия
Подразделение
Очков в турнире 1
Очков в турнире 2
...
Очков в турнире N
Суммарное количество очков набранное за все турниры.

Может я неправильно создал таблицы?
Надо как то переделать? Скажите как пожалуйста!
Задача простая, а не получается :_(

----------------------------------
"мои" таблицы

CREATE TABLE `ez`.`zd_1_fi` (
`mk1` int(11) NOT NULL AUTO_INCREMENT,
`F` varchar(20) DEFAULT NULL,
`I` varchar(20) DEFAULT NULL,
`PODR` varchar(15) DEFAULT NULL,
`POL` int(10) unsigned NOT NULL,
PRIMARY KEY (`mk1`)
) ENGINE=InnoDB AUTO_INCREMENT=612 DEFAULT CHARSET=cp1251;

CREATE TABLE `ez`.`zd_2_champ` (
`mk2` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(100) DEFAULT NULL,
`mdate` date DEFAULT NULL,
`mdatetime` datetime NOT NULL,
`year` int(10) unsigned NOT NULL,
PRIMARY KEY (`mk2`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=cp1251;

CREATE TABLE `ez`.`zd_3_stat` (
`mk3` int(11) NOT NULL AUTO_INCREMENT,
`mk_mk1` int(11) DEFAULT NULL,
`mk_mk2` int(11) DEFAULT NULL,
`points` int(11) DEFAULT NULL,
PRIMARY KEY (`mk3`)
) ENGINE=InnoDB AUTO_INCREMENT=2785 DEFAULT CHARSET=cp1251;

В них такие данные:

В zd_1_fi:

605, 'Иванов', 'И.', 'БАРК', 1
606, 'Лев', 'А.', 'КДДУ', 1
607, 'Клепиков', 'В.', 'ТОРГ', 1
608, 'Мих', 'Ф.', 'УКТП', 1
609, 'Рейн', 'С.', 'КР', 1
610, 'Ольгин', 'А.', 'КДДУ', 1
611, 'Ягодин', 'К.', 'УКТП', 1

В zd_2_champ:

41, 'ПРОБНЫЙ 2010', '2010-05-05', '2011-05-19 18:08:50', 2010
42, 'ПРОБНЫЙ 2011', '2011-05-19', '2011-05-19 18:09:06', 2011

В zd_3_stat:

2777, 605, 41, 1000
2778, 606, 41, 800
2779, 607, 41, 600
2780, 608, 41, 500
2781, 608, 42, 1000
2782, 606, 42, 800
2783, 605, 42, 600
2784, 607, 42, 500

Т.е. связь первой и второй таблицы происходит через третью - в которую записываются ключи и собственно очки.

На выходе должно получится:

F, I, PODR, Очков в NAME(1), Очков в NAME(2), .... , Очков в NAME(N), Суммарное количество Очков в таблице(2).


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
38466



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |