powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Группировка с полями null
5 сообщений из 5, страница 1 из 1
Группировка с полями null
    #39861469
Anastasia1495
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, как мне сделать группировку вот этого:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT TOP 100
  MOTCONSU.DATE_CONSULTATION, PATIENTS.PATIENTS_ID, LAB_METHODS.LABEL, DS_RESTESTS.VAL, DS_RESTESTS.DS_RESTESTS_ID, 
  (case when MEDECINS.NOM is null then 'Без направления' else (MEDECINS.NOM+' '+Substring(MEDECINS.PRENOM,1,1)+'. '+
+Substring(Substring(MEDECINS.PRENOM,CharIndex(' ',MEDECINS.PRENOM+ ' ',0)+1,100),1,1)+'.') end ) DOC ,
  (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=1) F1, (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=2) F2,
  (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=3) F3, (PATIENTS.FULL_NAME) FIO_PAT, 
 MOTCONSU.MOTCONSU_ID
FROM
 MOTCONSU MOTCONSU WITH(NOLOCK)  JOIN DS_RESTESTS DS_RESTESTS WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DS_RESTESTS.MOTCONSU_ID 
 LEFT OUTER JOIN LAB_METHODS LAB_METHODS WITH(NOLOCK)  ON LAB_METHODS.LAB_METHODS_ID = DS_RESTESTS.LAB_METHODS_ID 
 JOIN LAB_METHODBIO LAB_METHODBIO WITH(NOLOCK)  ON LAB_METHODS.LAB_METHODS_ID = LAB_METHODBIO.LAB_METHODS_ID 
 LEFT OUTER JOIN DS_PARAMS DS_PARAMS_1 WITH(NOLOCK)  ON DS_PARAMS_1.DS_PARAMS_ID = LAB_METHODBIO.DS_PARAMS_ID 
 LEFT OUTER JOIN DS_PRMGRP DS_PRMGRP WITH(NOLOCK)  ON DS_PRMGRP.DS_PRMGRP_ID = DS_PARAMS_1.DS_PRMGRP_ID 
 LEFT OUTER JOIN DS_TESTS DS_TESTS WITH(NOLOCK)  ON DS_TESTS.DS_TESTS_ID = DS_RESTESTS.DS_TESTS_ID 
 JOIN PATIENTS PATIENTS WITH(NOLOCK)  ON PATIENTS.PATIENTS_ID = MOTCONSU.PATIENTS_ID 
 LEFT OUTER JOIN DIR_ANSW DIR_ANSW WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DIR_ANSW.MOTCONSU_RESP_ID 
 LEFT OUTER JOIN PATDIREC PATDIREC WITH(NOLOCK)  ON PATDIREC.PATDIREC_ID = DIR_ANSW.PATDIREC_ID 
 LEFT OUTER JOIN MEDECINS MEDECINS WITH(NOLOCK)  ON MEDECINS.MEDECINS_ID = PATDIREC.MEDECINS_CREATOR_ID 
WHERE
 (MOTCONSU.MODELS_ID= 864 and MOTCONSU.REC_STATUS<>'X')
 AND (isnull( PATIENTS.TESTOVYY,0)<>1)



Для того что бы получить такой результат:

PAT_ID LABEL DOC F1 F2 F3 MOTCONSU_ID3092766 Эпителий Без направления NULL плоский умеренное кол-во плоский умеренное кол-во 85675923092766 Лейкоциты Без направления NULL 20-25 15-15 85675923092766 Микрофлора Без направления NULL палочковая.умеренная палочковая.умеренная 85675923092766 Трихомонады Без направления NULL не обнаружены не обнаружены 85675923092766 Гонококки Без направления NULL не обнаружены не обнаружены 8567592

Сейчас у меня получается следующее:

PAT_ID LABEL VAL DOC F1 F2 F3 MOTCONSU_ID3092766 Эпителий плоский умеренное кол-во Без направления NULL плоский умеренное кол-во NULL 85675923092766 Эпителий плоский умеренное кол-во Без направления NULL NULL плоский умеренное кол-во 85675923092766 Лейкоциты 20-25 Без направления NULL 20-25 NULL 85675923092766 Лейкоциты 15-15 Без направления NULL NULL 15-15 85675923092766 Микрофлора палочковая.умеренная Без направления NULL палочковая.умеренная NULL 85675923092766 Микрофлора палочковая.умеренная Без направления NULL NULL палочковая.умеренная 85675923092766 Трихомонады не обнаружены Без направления NULL не обнаружены NULL 85675923092766 Трихомонады не обнаружены Без направления NULL NULL не обнаружены 85675923092766 Гонококки не обнаружены Без направления NULL не обнаружены NULL 85675923092766 Гонококки не обнаружены Без направления NULL NULL не обнаружены 8567592
...
Рейтинг: 0 / 0
Группировка с полями null
    #39861472
Anastasia1495
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anastasia1495Подскажите пожалуйста, как мне сделать группировку вот этого:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT TOP 100
 MOTCONSU.DATE_CONSULTATION, PATIENTS.PATIENTS_ID, LAB_METHODS.LABEL, DS_RESTESTS.VAL, DS_RESTESTS.DS_RESTESTS_ID, 
 (case when MEDECINS.NOM is null then 'Без направления' else (MEDECINS.NOM+' '+Substring(MEDECINS.PRENOM,1,1)+'. '+
+Substring(Substring(MEDECINS.PRENOM,CharIndex(' ',MEDECINS.PRENOM+ ' ',0)+1,100),1,1)+'.') end ) DOC
 , (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=1) F1, (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=2) F2, (select DS_RESTESTS.VAL where DS_RESTESTS.ITEM=3) F3, (PATIENTS.FULL_NAME) FIO_PAT, 
 MOTCONSU.MOTCONSU_ID
FROM
 MOTCONSU MOTCONSU WITH(NOLOCK)  JOIN DS_RESTESTS DS_RESTESTS WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DS_RESTESTS.MOTCONSU_ID 
 LEFT OUTER JOIN LAB_METHODS LAB_METHODS WITH(NOLOCK)  ON LAB_METHODS.LAB_METHODS_ID = DS_RESTESTS.LAB_METHODS_ID 
 JOIN LAB_METHODBIO LAB_METHODBIO WITH(NOLOCK)  ON LAB_METHODS.LAB_METHODS_ID = LAB_METHODBIO.LAB_METHODS_ID 
 LEFT OUTER JOIN DS_PARAMS DS_PARAMS_1 WITH(NOLOCK)  ON DS_PARAMS_1.DS_PARAMS_ID = LAB_METHODBIO.DS_PARAMS_ID 
 LEFT OUTER JOIN DS_PRMGRP DS_PRMGRP WITH(NOLOCK)  ON DS_PRMGRP.DS_PRMGRP_ID = DS_PARAMS_1.DS_PRMGRP_ID 
 LEFT OUTER JOIN DS_TESTS DS_TESTS WITH(NOLOCK)  ON DS_TESTS.DS_TESTS_ID = DS_RESTESTS.DS_TESTS_ID 
 JOIN PATIENTS PATIENTS WITH(NOLOCK)  ON PATIENTS.PATIENTS_ID = MOTCONSU.PATIENTS_ID 
 LEFT OUTER JOIN DIR_ANSW DIR_ANSW WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DIR_ANSW.MOTCONSU_RESP_ID 
 LEFT OUTER JOIN PATDIREC PATDIREC WITH(NOLOCK)  ON PATDIREC.PATDIREC_ID = DIR_ANSW.PATDIREC_ID 
 LEFT OUTER JOIN MEDECINS MEDECINS WITH(NOLOCK)  ON MEDECINS.MEDECINS_ID = PATDIREC.MEDECINS_CREATOR_ID 
WHERE
 (MOTCONSU.MODELS_ID= 864 and MOTCONSU.REC_STATUS<>'X')
 AND (isnull( PATIENTS.TESTOVYY,0)<>1)



Для того что бы получить такой результат:

PAT_ID LABEL DOC F1 F2 F3 MOTCONSU_ID3092766 Эпителий Без направления NULL плоский умеренное кол-во плоский умеренное кол-во 85675923092766 Лейкоциты Без направления NULL 20-25 15-15 85675923092766 Микрофлора Без направления NULL палочковая.умеренная палочковая.умеренная 85675923092766 Трихомонады Без направления NULL не обнаружены не обнаружены 85675923092766 Гонококки Без направления NULL не обнаружены не обнаружены 8567592

Сейчас у меня получается следующее:

PAT_ID LABEL VAL DOC F1 F2 F3 MOTCONSU_ID3092766 Эпителий плоский умеренное кол-во Без направления NULL плоский умеренное кол-во NULL 85675923092766 Эпителий плоский умеренное кол-во Без направления NULL NULL плоский умеренное кол-во 85675923092766 Лейкоциты 20-25 Без направления NULL 20-25 NULL 85675923092766 Лейкоциты 15-15 Без направления NULL NULL 15-15 85675923092766 Микрофлора палочковая.умеренная Без направления NULL палочковая.умеренная NULL 85675923092766 Микрофлора палочковая.умеренная Без направления NULL NULL палочковая.умеренная 85675923092766 Трихомонады не обнаружены Без направления NULL не обнаружены NULL 85675923092766 Трихомонады не обнаружены Без направления NULL NULL не обнаружены 85675923092766 Гонококки не обнаружены Без направления NULL не обнаружены NULL 85675923092766 Гонококки не обнаружены Без направления NULL NULL не обнаружены 8567592
...
Рейтинг: 0 / 0
Группировка с полями null
    #39861478
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Anastasia1495]Anastasia1495Подскажите пожалуйста, как мне сделать группировку вот этого:

Вы присоединяете все строки, а показываете по фильтру, отсюда лишние NULL-ы:

Код: sql
1.
JOIN DS_RESTESTS DS_RESTESTS WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DS_RESTESTS.MOTCONSU_ID 



Надо присоединять сразу с фильтром, задав разные алиасы:
Код: sql
1.
2.
JOIN DS_RESTESTS F2 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F2.MOTCONSU_ID anf F2.ITEM=2
JOIN DS_RESTESTS F2 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F3.MOTCONSU_ID anf F3.ITEM=3
...
Рейтинг: 0 / 0
Группировка с полями null
    #39861479
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Minamoto]Anastasia1495пропущено...

Вы присоединяете все строки, а показываете по фильтру, отсюда лишние NULL-ы:

Код: sql
1.
JOIN DS_RESTESTS DS_RESTESTS WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = DS_RESTESTS.MOTCONSU_ID 



Надо присоединять сразу с фильтром, задав разные алиасы:
Код: sql
1.
2.
JOIN DS_RESTESTS F2 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F2.MOTCONSU_ID anf F2.ITEM=2
JOIN DS_RESTESTS F2 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F3.MOTCONSU_ID anf F3.ITEM=3

Во второй строке другой алиас только...
Код: sql
1.
2.
JOIN DS_RESTESTS F2 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F2.MOTCONSU_ID anf F2.ITEM=2
JOIN DS_RESTESTS F3 WITH(NOLOCK)  ON MOTCONSU.MOTCONSU_ID = F3.MOTCONSU_ID anf F3.ITEM=3
...
Рейтинг: 0 / 0
Группировка с полями null
    #39861857
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть веские причины писать with nolock рядом с каждой таблицей вместо того, чтобы один раз написать set TIL RUC в начале батча?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Группировка с полями null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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