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

Откуда:
Сообщений: 19
Добрый вечер! Нужна помощь в написании корректного запроса)))
Есть несколько таблиц
tabl1 (реестр счетов) tabl 2 (спецификация счета
rcd_ nomer счета rcd nomeklatura articul
1 33 1 Товар 1 001
2 34 1 Товар 2 002
3 35 2 Товар 1 001
3 Товар 2 002
3 Товар 4 004
3 Товар 5 005

Необходимо так написать запрос и объединить, чтоб все товары по одному счету были в одну строку
Результат
rcd NM
1 Товар 1, 001; Товар 2,002
2 Товар 1, 001
3 Товар 2, 002; Товар 4,004;Товар 5,005

Пробовала так написать, но начинает ругаться на неправильный синтаксис и неправильное имя объекта
select rcd,(select NM+'; ' as 'data()' from test t2 where test.Rcd=t2.rcd for xml path('') )
from
(SELECT rcd, nomeklatura +', '+articul as NM
FROM tabl1
INNER JOIN tabl2 ON tabl2.Rcd=tabl1.Rcd) test
group by rcd
Пример брата по этой ссылке https://www.sql.ru/faq/faq_topic.aspx?fid=130
Можно как-то написать запрос на объединение значений без создания новой таблицы.
Заранее спасибо за помощь!
24 янв 16, 02:52    [18721905]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений в одну строку  [new]
aleks2
Guest
declare @t1 table( rcd int primary key, nomer int )
declare @t2 table( rcd int, nomeklatura nvarchar(512), articul nvarchar(64) );

insert @t1
select 1, 33
union all 
select 2, 34

insert @t2
 select 1, N'Товар 1', N'001'
 union all 
 select 1, N'Товар 2', N'002'
 union all 
 select 2, N'Товар 3', N'003'
 union all 
 select 2, N'Товар 4', N'004'
 
select rcd
      , (select nomeklatura + ', ' + articul + '; ' 
           from @t2 as t2 
           where t2.rcd=t1.rcd for xml path('') 
         ) as [Фиг знает шо]
from @t1 as t1 
  
24 янв 16, 11:10    [18722210]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений в одну строку  [new]
alexdr
Member

Откуда:
Сообщений: 253
Здесь описаны разные методы как можно достичь желаемого.
24 янв 16, 12:05    [18722270]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений в одну строку  [new]
tanya.avapu
Member

Откуда:
Сообщений: 19
aleks2,

Спасибо за помощь.
24 янв 16, 19:11    [18723152]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений в одну строку  [new]
tanya.avapu
Member

Откуда:
Сообщений: 19
alexdr,спасибо за помощь.
24 янв 16, 19:12    [18723155]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить