![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объединение записей
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?