![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Регистрация: 11.05.2010
Сообщений: 6
|
![]()
Доброго времени суток! Вопрос скорее всего глупый и простой, но я не могу разобраться без вашей помощи!)
Мною была создана процедура, которая парсит xml-поле и инсертит или апдейтит данные в таблицу, все необходимые значения атрибутов хранились в одном теге, всё работало нормально. Теперь передо мной возникла задача записать значения атрибутов из разных тегов. И в данном случае процедура стала выполняться мин 5, и данные не заполняются. Подскажите что я делаю не так... xml выглядит примерно так: Цитата:
Код:
Последний раз редактировалось Stilet; 04.07.2012 в 21:24. |
|
![]() |
![]() |
![]() |
#2 |
Регистрация: 11.05.2010
Сообщений: 6
|
![]()
В решении своей проблемы продвинулась, но не до конца. Надо было изначально в cross apply указывать макс тег , а в select значения тех атрибутов, которые находятся выше указывать через ../ (причем насколько выше, столько и тегов).
В итоге у меня получилось так: SELECT n.value ('../../@id','int') as num n.value ('@sum','float') as notes_sum, FROM dbo._RNKO_RESPONSE r cross apply r.response_blob.nodes('/response/reports/getCash/trm/currency/notes') as coins(n) where r.response_id = @resp_id Но проблема остается не решенной до конца, так как я не могу вытащить данные по сумме (sum) из тегов notes, coins в одном selectе. Так как тег notes не находится внутри тега coins, а находится рядом. если select изменить так: SET NOCOUNT ON; SELECT n.value ('../../@id','int') as num, n.value ('@sum','float') as notes_sum, c.value ('@sum','float') as coins_sum FROM dbo._RNKO_RESPONSE r cross apply r.response_blob.nodes('/response/reports/getCash/trm/currency/notes') as notes(n) cross apply r.response_blob.nodes('/response/reports/getCash/trm/currency/coins') as coins(c) where r.response_id = @resp_id то процедура в итоге очень долго выполняется и ничего не возвращает... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
база ms sql server 2005 | zazic2p | SQL, базы данных | 0 | 05.10.2011 17:31 |
Работа с MS SQL Server 2005 EE | LittleFatCat | SQL, базы данных | 2 | 03.10.2011 12:00 |
MS SQL 2005 Server регистрозависимым | Cawboy | БД в Delphi | 0 | 26.03.2010 15:45 |
Вставка БД с SQL server 2005 | фЁдОр | SQL, базы данных | 17 | 20.11.2007 17:15 |