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

Откуда:
Сообщений: 16
Добрый день!
Задача: из запросов, получаемых циклом, получить одну таблицу.

DECLARE @Doc XML,
@i int

SET @i = 1
WHILE @i < 100
BEGIN
SELECT @Doc=Реестр
FROM РеестрФНС
WHERE Док = @i

SELECT MyColumn.value('@КодОКВЭД','nvarchar(300)') AS КодОКВЭДОсн
FROM @Doc.nodes('/Файл/Документ/СвОКВЭД/СвОКВЭДОсн') MyTable(MyColumn)
SET @i = @i +1
END

Переменная @Doc - это xml-строка.
15 май 18, 19:33    [21411583]     Ответить | Цитировать Сообщить модератору
 Re: Объединить запросы после цикла  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
прочитать доку про методы xml, например nodes(), обратив внимание на пример-2
15 май 18, 19:42    [21411595]     Ответить | Цитировать Сообщить модератору
 Re: Объединить запросы после цикла  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Heldar
Добрый день!
Задача: из запросов, получаемых циклом, получить одну таблицу.

Завязывайте с циклами и курсорами!
SELECT
  [Док],
  [КодОКВЭДОсн] = x.v.value( '@КодОКВЭД','NVARCHAR(300)' )
FROM	
  ( SELECT * FROM [РеестрФНС] WHERE [Док] BETWEEN 1 AND 100 ) t
  CROSS APPLY t.[Реестр].nodes( 'Файл/Документ/СвОКВЭД/СвОКВЭДОсн' ) x(v)
16 май 18, 09:53    [21412465]     Ответить | Цитировать Сообщить модератору
 Re: Объединить запросы после цикла  [new]
Heldar
Member

Откуда:
Сообщений: 16
Руслан Дамирович,
Дедушка,

Ребята, супер!
Спасибо!
16 май 18, 19:39    [21414770]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить