Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

2 таблички нужно свести в одну [D7, XP]


03111978 ©   (2010-09-06 11:08:00) 

т.е. есть 2 таблички, поле ФИО, там и там одно и тоже, остальные поля тоже одинаковые, только данные разные. Необходимо как то объеденить 2 таблички в некую третьтю, и сгрупировать по ФИО.

написал вот так, запрос на MS SQL, но где то ошибка, подскажите пожалуйста.

update t1 set _Num = t2._Client,_1 = t2._1, _2 = t2._2, _3 = t2._3, _4 = t2._4, _5 = t2._5, _6 = t2._6, _7 = t2._7, _8 = t2._8, _9 = t2._9, _10 = t2._10, _11 = t2._11, _12 = t2._12, _Itog = t2._Itog, _Skidka = t2._Opl
from L_pr..ItogKontakt t1
inner join(select _Client,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_Itog,_Opl from L_pr..NEW group by _Client)t2 on (t1._Num = t2._Client)


03111978   (2010-09-06 14:12:00) [1]

Всем спасибо, ошибку нашел


Anatoly Podgoretsky   (2010-09-06 13:03:00) [2]

Основная ошибка в том, что это не объединение, а соединение, объединение делается через UNION


12   (2010-09-06 12:52:00) [3]


> зачем нужно такое перекладывание данных.

Временное хранение, чтоб не рассчитывать каждый раз, например.


> 03111978   (06.09.10 11:08)  

Явная ошибка в отсутствии агрегации при группировке, нужно исправить для начала, а там видно будет :)


И. Павел   (2010-09-06 12:41:00) [4]

Можно сперва удалить старые записи, а потом добавить новые с помощью SELECT INTO.
Или можно через UPDATE но в цикле.

Хотя не понятно - зачем нужно такое перекладывание данных. Да еще и, видимо, регулярное, т.к. речь идет не о создании таблицы а об ее обновлении.


И. Павел   (2010-09-06 12:37:00) [5]

И не from должен быть, а Where...


И. Павел   (2010-09-06 12:30:00) [6]

> граппировать

группировать


И. Павел   (2010-09-06 12:27:00) [7]

> select _Client,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_Itog,
> _Opl from L_pr..NEW group by _Client

Нужно граппировать и по _1, _2 ... Ну или суммировать их, например: sum(_1), sum(_2) и т.д.

PS: Сервер что пишет?


brother   (2010-09-06 11:28:00) [8]

> но где то ошибка

истина где-то рядом (с)Секретные материалы


Наверх

Титульная страница Поиск, карта сайта Написать письмо