Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
seg856 Member Откуда: Сообщений: 265 |
Примерная структура xml-документа:<ZL_LIST><SCHET> <CODE> <CODE_MO> <YEAR> <MONTH> <NSCHET> <DSCHET> <SUMMAV> <COMENTS> </schet> <ZAP> <N_ZAP> <PR_NOV> <PACIENT> <ID_PAC> <VPOLIS> <NPOLIS> <ST_OKATO> <SMO> <SMO_OGRN> <SMO_OK> <SMO_NAM> <NOVOR> <Z_SL> <IDCASE> <USL_OK> <VIDPOM> <FOR_POM> <LPU> <DATE_Z_1> <DATE_Z_2> <SL> <SL_ID> <NHISTORY> <DATE_1> <DATE_2> <USL> <IDSERV> <LPU> <DATE_IN> <DATE_OUT> <DS> <CODE_USL> <KOL_USL> <CODE_MD> </usl> <COMENTSL> </sl> <IDSP> <SUMV> </z_sl> </zap> На один объект SL у нас много объектов USL. Чтобы выбрать объекты USL, делаю запрос: SELECT col.x.query('DATE_IN').value('DATE_IN[1]','DATE') as DATE_IN, col.x.query('DATE_OUT').value('DATE_OUT[1]','DATE') as DATE_OUT, col.x.query('DS').value('DS[1]','VARCHAR(10)') as DS, col.x.query('CODE_USL').value('CODE_USL[1]','VARCHAR(20)') as CODE_USL, FROM prob A CROSS APPLY A.Data.nodes('/ZL_LIST/ZAP/Z_SL/SL/USL') col(x) Вопрос: как выбрать в том же запросе также поля, относящиеся к объекту SL (то есть родительские узлы), например NHISTORY, DATE_1? |
11 дек 18, 10:31 [21759914] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
SELECT col.x.value('DATE_IN[1]','DATE') as DATE_IN, col.x.value('DATE_OUT[1]','DATE') as DATE_OUT, ... col.x.value('../SL_ID[1]','int') as DATE_IN, FROM prob A CROSS APPLY A.Data.nodes('/ZL_LIST/ZAP/Z_SL/SL/USL') col(x) |
11 дек 18, 10:41 [21759928] Ответить | Цитировать Сообщить модератору |
seg856 Member Откуда: Сообщений: 265 |
invm, а как получить поле <NPOLIS>? Ведь PATIENT на одном уровне с Z_SL. |
2 янв 19, 15:29 [21777593] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |