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

Откуда: ни: возьмись.
Сообщений: 1601
Скудные оформительские возможности форума вынудили меня разместить вопрос здесь:
http://www.geocities.com/bpk20032001/prog/ImportBT.htm
25 ноя 04, 17:14    [1136202]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк при UPDATE FROM  [new]
BPK
Member

Откуда: ни: возьмись.
Сообщений: 1601
Это дубль
Вопрос здесь: https://www.sql.ru/forum/actualthread.aspx?tid=141172
25 ноя 04, 17:46    [1136380]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк при UPDATE FROM  [new]
judge
Администратор

Откуда: SQL.ru
Сообщений: 5981
Блог
Расскажите про скудные возможности. Почитайте https://www.sql.ru/forum/actualthread.aspx?tid=127456

-----
Есть таблица, состоящая примерно из таких записей:

ITEMDETAILUNITCOUNTSIGNS
103677135NULLVD10,VD15,VD1
103677135NULLVD18,VD16,VD5,VD6,VD12
10367713512VD2,VD13,VD11,VD17

Записи, у которых одинаковые поля ITEM, DETAIL и UNIT, характеризуют один и тот же элемент. При этом поле COUNT, присутствующее лишь у одной записи из набора, обозначает количество элементов, входящих в UNIT.

В результате переработки таблицы хочу получить такой результат:

ITEMDETAILUNITCOUNTSIGNS
10367713512VD2,VD13,VD11,VD17,VD10,VD15,VD1,VD18,VD16,VD5,VD6,VD12


Создаю временную таблицу #Tab

Затем вставляю туда первые строчки наборов:

insert into #Tab select [item], [detail], [unit], [count],
case when [signs] is null then '' else [signs] end
from OrigTable where [count] is not null order by [unit], [item]

Теперь пытаюсь добавить в поле [signs] последующие строчки:

update #Tab set [signs]=#Tab.[signs]+','+
case when bt.[signs] is null then '' else bt.[signs] end
from OrigTable bt where (bt.[count] is null) and (bt.[unit]=#Tab.[unit]) and (bt.item=#Tab.item)

Однако, в результате последнего запроса добавляются не все, а лишь вторые строчки:
ITEMDETAILUNITCOUNTSIGNS
10367713512VD2,VD13,VD11,VD17,VD10,VD15,VD1


Как сделать так, чтобы объединялись ВСЕ записи из набора (БЕЗ ПРИМЕНЕНИЯ КУРСОРОВ!!!) ?
25 ноя 04, 18:45    [1136608]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк при UPDATE FROM  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
judge
Расскажите про скудные возможности. ...

Oops... I guess author can blame himself for that: he published it twice and "получил на орехи" twice...
25 ноя 04, 18:59    [1136637]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить