powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / объединение одного столбца в строку
15 сообщений из 15, страница 1 из 1
объединение одного столбца в строку
    #39901905
plorkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Имеется таблица след. вида count_of_RRPCatM7Category18Category25Category33Category459Category52Category65Category7

Необходимо привести произвести сумму по полю count_of_RRP и сложить все строки поля Catm через запятую, иными словами должно получится
count_of_RRPCatMan89Category1 Category2

Подскажи пожалуйста, как лучше сделать, пробовал через pivot с дальнейшим использованием concat, но есть проблема в том, что данные каждый день будут новые.
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39901937
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39901938
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plorkie,

Код: sql
1.
select @@version
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39901961
plorkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex,

MSSQL 2014
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39901967
assmsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
;WITH CTE AS 
(
Select  count_of_RRP ,	CatM from (values
 (7 ,	'Category1')
,(8 ,	'Category2')
,(5 ,	'Category3')
,(3 ,	'Category4')
,(59,	'Category5')
,(2 ,	'Category6')
,(5 ,	'Category7')) t (count_of_RRP ,	CatM)
)


SELECT  SUM(count_of_RRP),(SELECT CatM + ',' FROM CTE FOR XML PATH('')) FROM CTE
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39901995
plorkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
assmsk,

спасибо, но если значения динамические каждый раз на входе? выходит через цикл надо
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902017
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plorkie
спасибо, но если значения динамические каждый раз на входе? выходит через цикл надо
Это и есть решение для "динамических" данных.
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902026
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако, это неполное решение, ибо в CatM, наверно, могут быть спецсимволы.
Да и последняя запятая болтается...
Код: sql
1.
2.
SELECT SUM(count_of_RRP),STUFF((SELECT ', '+CatM FROM CTE FOR XML PATH('')).value('.','nvarchar(max)'),1,2,N'')
FROM CTE
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902048
plorkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт, спасибо.
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902283
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще уже есть STRING_AGG


https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15

Кто-нибудь юзал?
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902291
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Вообще уже есть STRING_AGG


https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15

Кто-нибудь юзал?
plorkie
MSSQL 2014
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902638
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Вообще уже есть STRING_AGG


https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15

Кто-нибудь юзал?

Конечно, отличная штука, но автору не подходит.
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902650
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
declare @a int = 0, @b varchar(max) = '';
select @a+=cont_of_rpm, @b+=concat(catm,' ') from tbl1;
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902809
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для сабжа использую функции.

select @aa = @aa+', '+MyField
.........

Работает везде и удобно кастомизировать результат.
...
Рейтинг: 0 / 0
объединение одного столбца в строку
    #39902899
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Код: sql
1.
2.
declare @a int = 0, @b varchar(max) = '';
select @a+=cont_of_rpm, @b+=concat(catm,' ') from tbl1;


L_argo
Я для сабжа использую функции.

select @aa = @aa+', '+MyField
.........

Работает везде и удобно кастомизировать результат.


Это
1 недокументированно
2 работает не всегда
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / объединение одного столбца в строку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]