Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по выборке t-sql x-query / 3 сообщений из 3, страница 1 из 1
11.12.2018, 10:31
    #39745806
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по выборке t-sql x-query
Примерная структура xml-документа:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<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, делаю запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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?
...
Рейтинг: 0 / 0
11.12.2018, 10:41
    #39745812
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по выборке t-sql x-query
Код: sql
1.
2.
3.
4.
5.
6.
7.
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)
...
Рейтинг: 0 / 0
02.01.2019, 15:29
    #39755502
seg856
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по выборке t-sql x-query
invm, а как получить поле <NPOLIS>? Ведь PATIENT на одном уровне с Z_SL.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по выборке t-sql x-query / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]