powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 7, страница 1 из 1
Помогите с запросом
    #36046016
armin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/// Отделение, палата и кровать на которой находится пациент
Class STACIONAR.InPatientDepartmen Extends (%Persistent, %Populate, %XML.Adaptor)
{

/// Дата госпитализации/перевода в отделение
Property DateHospDepartmen As %Date [ InitialExpression = {+$h} ];

/// История болезни
Property PatientF003 As STACIONAR.F003;

/// Отделение (заполняется в приемном отделении)
Property PatientSeparation As STACIONAR.Separation;

/// Палата (заполняется в отделении)
Property PatientСhamber As STACIONAR.Сhamber;

/// Кровать (заполняется в отделении)
Property PatientBed As STACIONAR.Bed;

}


Из этого класса

PatientF003 Date
==========================
25 26.10.2008
25 26.10.2008
25 27.10.2008
46 29.10.2008
46 30.10.2008
46 30.10.2008
47 25.10.2008
47 24.10.2008

нужно получить такой результат

25 26.10.2008
46 29.10.2008
47 24.10.2008

т.е. строки с MIN датой в каждой из групп по PatientF003.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36046030
armin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо шо то типа такого.......тока єто не компилица

select *
from STACIONAR.InPatientDepartmen as t
where DateHospDepartmen = (select min(DateHospDepartmen) from STACIONAR.InPatientDepartmen t1 where t->PatientF003->%ID = t1->PatientF003->%ID)
...
Рейтинг: 0 / 0
Помогите с запросом
    #36046607
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
arminselect *
from STACIONAR.InPatientDepartmen as t
where DateHospDepartmen = (select min(DateHospDepartmen) from STACIONAR.InPatientDepartmen t1 where t->PatientF003 = t1->PatientF003 )
...
Рейтинг: 0 / 0
Помогите с запросом
    #36046632
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
select *
from STACIONAR.InPatientDepartmen t
where DateHospDepartmen = (select min(DateHospDepartmen) from STACIONAR.InPatientDepartmen t1 where t.PatientF003 = t1.PatientF003)
group by PatientF003
...
Рейтинг: 0 / 0
Помогите с запросом
    #36046896
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё проще (проверялось на версии 2009.1):
Код: plaintext
1.
2.
select distinct PatientF003,min(DateHospDepartmen %foreach(PatientF003)) DateHospDepartmen
from STACIONAR.InPatientDepartmen
или
Код: plaintext
1.
2.
select PatientF003,min(DateHospDepartmen) DateHospDepartmen
from STACIONAR.InPatientDepartmen group by PatientF003
...
Рейтинг: 0 / 0
Помогите с запросом
    #36047352
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select * from STACIONAR.InPatientDepartmen 
group by patient
having DateHospDepartmen=min(DateHospDepartmen)

Синтаксически, по-моему неверно, но вроде работает.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36049729
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот...

Код: plaintext
1.
SELECT DISTINCT BY (PatientF003) * FROM STACIONAR.InPatientDepartmen ORDER BY DateHospDepartmen

Правда результат будет отсортирован по дате, но зато выполнится быстрее...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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