SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.02.2009 12:32:25

kross
Участник
Зарегистрирован: 10.02.2009
Сообщений: 5

обьединение таблиц в бд

Доброго времени суток !!
подкаже пожалуйста с запросом,сам понимаю что нужно ввести всего две строки но просто незнаю как (
так вот сам вопрос:
есть база данных на mysql
в ней пять таблиц sv01,sv02.....sv05 такого вида  номер  фамилия  мес01 мес02 мес03.........мес012
                                                                              01      иванов    200   200    300              400

каким дожен быть запрос чтобы удалить строки в кторых столбцы  мес01 мес02 мес03.........мес012 равны 0. то есть пусты

а затем обьединить таблицы если совпадает первый и второй столбец тоесть фамлия ИО  то значение
столбцов  мес01 мес02 мес03.........мес012 складывается и получается одна сводная таблица так как второй столбец почти совпадает вот
подозреваю что тут ничего сложно нет но это нужно  нужно  сегодня тоесть я за два часа столько не вычитаю буду рад любой подказке !

Отредактированно kross (10.02.2009 13:07:17)

Неактивен

 

#2 10.02.2009 13:13:06

kross
Участник
Зарегистрирован: 10.02.2009
Сообщений: 5

Re: обьединение таблиц в бд

пустые строки уже удалил осталось обьединить

Неактивен

 

#3 10.02.2009 14:05:32

kross
Участник
Зарегистрирован: 10.02.2009
Сообщений: 5

Re: обьединение таблиц в бд

UPDATE `table` SET B=A;

этот запрос обновляет даные из одного стобца в другой но в одной таблице как написать его так чтобы обновились столбцы одной табл из другой таб если уних совпадает поле family  и значения не просто менялись а складывались
а если не совпадает то добавлялась строка

Неактивен

 

#4 10.02.2009 20:37:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: обьединение таблиц в бд

Честно говоря, не очень понял, что нужно.

Я напишу так, как я понял, и решение. Если не правильно понял - поправьте. У Вас таблицы одинаковой структуры,
Вам хочется объединить в них данные и сгруппировать по пользователям.

SELECT name, SUM(jan), ..., SUM(_dec) FROM
  (SELECT name, jan, ... , _dec FROM sv01
   UNION
   SELECT name, jan, ... , _dec FROM sv02
   ... ) tmp
  GROUP BY name


Будет выполняться долго, т.к. структура БД очень странная. _deс назвал через подчеркивание, чтобы не подсвечивалось smile

Неактивен

 

#5 11.02.2009 08:49:31

kross
Участник
Зарегистрирован: 10.02.2009
Сообщений: 5

Re: обьединение таблиц в бд

огромное спасибо еще маленький вопрос как дописать этот запрс так чтобы результать записывался в другую таблицу знаю что должно быть что то типа  select * into table_new from table_old
а как недоходит ?

Неактивен

 

#6 11.02.2009 13:54:07

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: обьединение таблиц в бд

В обратном порядке )

INSERT INTO tablename SELECT ...;

Неактивен

 

#7 12.02.2009 19:16:44

kross
Участник
Зарегистрирован: 10.02.2009
Сообщений: 5

Re: обьединение таблиц в бд

огромное спасибо ))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson