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

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

Объединение записей


ddd329 ©   (2009-04-25 07:51:00) 

Как с помощью SQL можно объеденить записи(не поля) в одну? Допустим нам надо выбрать из таблицы хобби клиента, у данного клиента может быть несколько занятий и запрос вернет несколько записей. Можно ли сделать так чтобы запрос возвращал одну запись в которой через запитую будут перечисленны его хобби???


clickmaker   (2009-04-29 14:21:00) [1]

set @MinHobby = ''
set @Hobbues = ''
while exists(select * from hobbies where Hobby > @MinHobby)
 set @MinHobby = (select min(Hobby) from hobbies where Hobby > @MinHobby)
 if @Hobbies <> '' @Hobbies = @Hobbies + ', '
 set @Hobbies = @Hobbies + @MinHobby
end


MsGuns   (2009-04-28 11:06:00) [2]

В Акцесе прямым запросом - никак. Надо писать модуль.


clickmaker   (2009-04-27 11:55:00) [3]

а в access есть курсоры?
и если в таблице есть уникальный id, то можно в цикле - while


DDD329   (2009-04-26 16:29:00) [4]

СУБД Access, был бы Oracle на PL/SQL состряпал бы быстренько.


PEAKTOP   (2009-04-25 11:45:00) [5]

СУБД уточни ?
В Firebird можно так:

SELECTLIST(H.NAME, ', ')
FROM  CLIENT_HOBBIES H
WHERE(H.CLIENT_ID = 12345)


Виталий Панасенко(дом)   (2009-04-25 10:29:00) [6]

select f1,(select hobby from )||','||(select hobby from) from если движек(сервер) потянет такой синтаксис


Гарик   (2009-04-25 09:20:00) [7]

Назовите СУБД. Наверное, во всех СУБД такая операция легко проделывается с помощью хранимых процедур. В Oracle можно использовать хранимые функции. Или надо применять только "чистый" SQL?


Наверх

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