Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Слияние нескольких строк в одну  [new]
bojeviciok
Member

Откуда:
Сообщений: 34
Подскажите пожалуйста, как составить запрос. Есть таблица с такими данными:

ID Comment
1 K1
1 K2
2 K1
3 K1

Мне нужно слить в одну строку информацию, чтобы коментарий шел через зп.

Результат должен выглядеть так:

ID Comment
1 K1, K2
2 K2

Нужно как то сделать поиск по ID и если находит две или три строки с одинаковым ID, выводил инфо одной строкой с коментами.
Теоритически вроде понятно, но реализовать не могу, мало навыка. Буду благодарна за любую помощь.

p.s. Сервер 2000
7 окт 14, 15:36    [16671793]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
bojeviciok,

как вывести запрос с объединением строк
7 окт 14, 15:40    [16671826]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
a_voronin
bojeviciok,

как вывести запрос с объединением строк
Чухча не читатель?
bojeviciok
p.s. Сервер 2000
FAQ
7 окт 14, 15:43    [16671861]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
bojeviciok
Member

Откуда:
Сообщений: 34
Ну вот, пару дней искала тут на форуме инфо и на эти ссылки не наткнулась, спасибо.
7 окт 14, 16:03    [16671985]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
bojeviciok
Member

Откуда:
Сообщений: 34
Помогите разобраться, что то не так:

Получился такой код:

ALTER FUNCTION dbo.TESTAS(@clid INT)
returns varchar(4000)
AS
BEGIN
DECLARE @rc varchar(4000)
SET @rc= @rc
SELECT @rc = ISNULL(@rc + ',', ' ') + REASON_CODE
FROM dbo.users
WHERE CL_ID = @clid
RETURN @rc
END
go

SELECT CL_ID,
REASON_CODE=dbo.TESTAS(CL_ID )
FROM dbo.users
WHERE CL_ID IN (243, 417)

GROUP BY CL_ID
ORDER BY CL_ID
go

В итоге получаю неправильный ответ:
Для CL_ID 243 выдает 4 одинаковых кода, хотя они должны быть разные, но взял последнюю запись и 4 раза повторил.
А для CL_ID сложил правильно. Помогите разобраться, натолкнуть на правильное решение.

243 80000348,80000348,80000348,80000348
417 80000028,80000072
24 окт 14, 14:53    [16754249]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
bojeviciok, группируйте отдельно от вызова функции.
24 окт 14, 15:21    [16754467]     Ответить | Цитировать Сообщить модератору
 Re: Слияние нескольких строк в одну  [new]
bojeviciok
Member

Откуда:
Сообщений: 34
Владислав Колосов
bojeviciok, группируйте отдельно от вызова функции.


Отдельно это в каком месте?
24 окт 14, 15:39    [16754641]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить