Forum Webscript.Ru
Общие => Базы данных => Тема начата: Kouz от 12 Ноября 2005, 03:58:15
-
Нужно в MySQL "перевернуть" таблицу по диагонали.
Например есть таблица со статистикой по сисадминам :beer:
имя год пропил
------ ------ ------
вася 2003 220
вася 2004 580
вася 2005 400
коля 2003 900
коля 2004 760
коля 2005 500
как написть select, чтобы получить
имя 2003 2004 2005
----- ----- ----- ------
вася 220 580 400
коля 900 760 500
при условии, что заранее не известно в какие года сисадмины пьянствовали, т.е. в select нельзя использовать \'2002\', \'2003\' и \'2004\'.
-
Kouz
а средствани приложения решить эту проблемму неа?
т.е.
1 запрос + 1 запрос в цикле...
-
а если что-то вроде GROUP BY year, name?
-
hanslinger
а если что-то вроде GROUP BY year, name?
ещё раз хорошо подумай...
-
ещё раз хорошо подумай...
Ну и что?
SELECT * FROM `table` GROUP BY `name`, `year`;
Выдает сгруппированные значения. Думаю, что это ему и надо было. Если нет - то только приложением, хотя в этом случае задача мне вообще не ясна.
-
commander:
а средствани приложения решить эту проблемму неа?
т.е.
1 запрос + 1 запрос в цикле...
Приложение в данном случае - Excel. Передаем данные через ODBC. То есть все нужно решать средствами sql запроса.
В MySQL 5 появились stored procedure которыми я раньше никогда не прользовался. Насколько я понимаю задачу можно решить написав stored procedure.
Есть ли ссылки на курс молодого боца по stored procedure в MySQL, желательно с примерами?
-
вот здесь есть stored procedure для MS SQL которая делает то, что мне нужно.
http://www.sqlteam.com/item.asp?ItemID=2955 (http://www.sqlteam.com/item.asp?ItemID=2955)
как бы такое в MySQL сообразить?
-
хранимые процедуры в MySQL 5.0, коротко и доступно в двух словах:
http://www.databasejournal.com/features/mysql/article.php/10897_3525581 http://www.databasejournal.com/features/mysql/article.php/3547931
-
NeoNox
коротковато... :(
Kouz
тут получше будет:
http://dev.mysql.com/doc/refman/5.1/en/stored-procedures.html
даже есть русская версия, но только для 4 версии...:
http://dev.mysql.com/doc/refman/4.0/ru/extending-mysql.html