Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Fern Гость
|
Добавлено: Пн Сен 02 2002 18:40 Заголовок сообщения: Помогите сосавить SQL запрос |
|
|
Есть таблица afk :
+--------+------+ | title | id | +--------+------+ | Oberon | 2004 | | Oberon | 3150 | | Oberon | 1210 | | Kavin | 4060 | +--------+------+
Как бы составить запрос чтобы он выводил :
title id ------------------------------------- Oberon 2004, 3150, 1210 Kavin 4060
ну или на худой конец:
Oberon 200431501210
Заранее благодарю всех, кто взвалит на себя тяжкий груз ответа |
|
Вернуться к началу |
|
|
swordfish
Зарегистрирован: 07.05.2002 Сообщения: 100 Откуда: Наб. Челны
|
Добавлено: Вт Сен 03 2002 10:09 Заголовок сообщения: Re: Помогите сосавить SQL запрос |
|
|
Никак. Пиши хранимые проц. обрабатывай выборку ручками |
|
Вернуться к началу |
|
|
Programmer
Зарегистрирован: 20.07.2002 Сообщения: 7 Откуда: Rostov-on-Don
|
Добавлено: Вт Сен 03 2002 10:18 Заголовок сообщения: Re: Помогите сосавить SQL запрос |
|
|
В Oracle я бы сделал так:
1. Объявим функцию CREATE OR REPLACE function ReturnID (inputTitle in varchar2) return varchar2 is cursor pr is select to_char(id) from afk where (title=inputTitle); str1 varchar2(30); str2 varchar2(30); begin open pr; str1 := ''; str2 := '';
LOOP FETCH pr into str1; EXIT WHEN pr%NOTFOUND; str2 := str2 || str1 || ','; END LOOP;
--уберем лишнюю запятую str2 := substr(str2,1,length(str2)-1); return str2;
end; /
2. Получим то, что нужно
select distinct(title), returnID(title) from afk |
|
Вернуться к началу |
|
|
Andy-C Гость
|
Добавлено: Ср Сен 04 2002 07:39 Заголовок сообщения: Re: Помогите сосавить SQL запрос |
|
|
SQL не вариант. Но есть всякие примочки которые эмулируют фокс/аксес что-то типа cross table Delphi/Builder Decisin cube в оракле... Ну а ручками вообще |
|
Вернуться к началу |
|
|
|