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

Откуда:
Сообщений: 8
Есть запрос, который формирует xml файл, в котором идет перечень так называемых клиентов с их данными. Каждый клиент должен быть обособлен рядом тегов. А конкретнее каждый клиент, должен находиться в отдельном теге "t". Подскажите, пожалуйста, как это сделать.

Сам запрос:

select distinct t.site as site,a.cust_num,a.cust_seq,name,c.RowPointer, isnull(country,' ') + ',' + isnull(zip,' ') + ','  + isnull(city,' ') + ',' + isnull(addr##1,' ') as adr1,isnull(country,' ') + ',' + isnull(zip,' ') + ',' + isnull(city,' ' ) + ',' + isnull(addr##1,' ' ) as adr2,RUSinn,isnull(RUSkpp,'Нет данных') as RUSkpp,isnull(RUSokpo,'Нет данных') as RUSokpo,isnull(a.Uf_Rusogrn,'Нет данных') as Rusogrn,RUSAcct,RUSCorrAcct,RUSbik,RUSBankName,contact##1,isnull(Uf_StrategCust,0) as Uf_StrategCust,isnull(Uf_StrategProspect,0) as Uf_StrategProspec,isnull(phone##1, 'Нет данных') as phone,isnull(ship_to_email, 'Нет данных') as cust_email,  emp_num , 'customer' as tablename, c.posted_bal, l.lcr_num,
case a.cust_num when 'K00616' then  'R\K006168.jpg' else null end as logo_cust
from sl_spb..customer c
inner join sl_spb..custaddr a on (a.cust_num = c.cust_num and c.cust_seq = a.cust_seq) 
inner join #tmp_cust t on (t.cust_num = c.cust_num) 
inner join sl_spb..cust_lcr l on (t.cust_num = l.cust_num) 
where a.cust_num = c.cust_num  and a.cust_seq = 0  and site = 'SPB'  and getdate() >= l.issue_date and getdate() <= l.exp_date
and a.cust_num <>  'K001186' and  a.cust_num not in ( 'K000828','K000827','K000862','K001813','K005404','K006799','K010497','К001875')
FOR XML AUTO


На скриншоте показаны два клиента, которые находятся в одном теге t, а должны каждый находится в своем теге t.

К сообщению приложен файл. Размер - 7Kb


Сообщение было отредактировано: 28 мар 19, 13:33
28 мар 19, 13:32    [21846056]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
aleks222
Member

Откуда:
Сообщений: 956
Так кто вам мешает?
28 мар 19, 14:49    [21846158]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Alexander284
Member

Откуда:
Сообщений: 8
aleks222, мне то никто не мешает, я не понимаю как это сделать.
28 мар 19, 15:15    [21846200]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Владислав Колосов
Member

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

судя по картинке, для одной строки t имеется две строки a, поэтому и получаете такую структуру. А надо, чтобы для одной t была только одна a.
28 мар 19, 17:31    [21846417]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Alexander284
Member

Откуда:
Сообщений: 8
Владислав Колосов, Вы случайно не знаете как это поправить?
29 мар 19, 08:45    [21846758]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Владислав Колосов
Member

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

В каком смысле - как? У Вас так структура хранения данных организована, т.е. никак. или Вы не учли какие-то требования отбора при написании запроса.
29 мар 19, 11:40    [21846911]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
court
Member

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

перепиши на FOR XML PATH
29 мар 19, 12:26    [21846965]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Владислав Колосов
Member

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

какой результат Вы хотите получить?
29 мар 19, 12:44    [21846976]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3247
court
Alexander284,

перепиши на FOR XML PATH
+1. Мало того, что AUTO формирует структуру вложенности автомагически, так еще и зачастую тормозит.
У меня был случай, когда ежеминутная выгрузка из 10-12 таблиц где-то выполнялась в лучшем случае 30-40 секунд, а иногда и дольше минуты (запрос был легаси, написан еще на 2000). После переписывания на PATH уже на 2005 версии размер селекта в строках, конечно, вырос, но выполняться стало не дольше секунды. XML-схемы в обоих случаях идентичные, разумеется.
29 мар 19, 13:00    [21846979]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Alexander284
Member

Откуда:
Сообщений: 8
Владислав Колосов, вот такой, а не тот, что на первом скрине.

К сообщению приложен файл. Размер - 8Kb
29 мар 19, 15:13    [21847194]     Ответить | Цитировать Сообщить модератору
 Re: сортировка при создании xml файла  [new]
Alexander284
Member

Откуда:
Сообщений: 8
Alexander284
Владислав Колосов, вот такой, а не тот, что на первом скрине.


дело в том, что, когда встречаются одинаковые значения поля emp_num, то они все записываются под одним тегом t, а должны быть под разными.
29 мар 19, 15:16    [21847208]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить