Как отобразить первого и второго Доктора, чтобы увидеть пациента? - PullRequest
0 голосов
/ 07 декабря 2011

Мне нужно создать таблицу, в которой есть много столбцов, извлекающих дату из одной таблицы и двух представлений.Для отображения столбцов проблем нет.Проблема вступает в игру, когда мне приходится псевдоним двух столбцов, чтобы показать пациента, который получил услуги от первых двух разных врачей (doctor_1 и doctor_2).У каждого доктора есть свой идентификатор.Я не уверен, должен ли я использовать «отличный верх (2)», «ранг» и т. Д. Вот как это выглядит.

Дата, Фамилия, Имя, Адрес, Город, Штат, Почтовый индекс, Гостеприимство, Комната, Доктор_1, Доктор_2

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 09 декабря 2011

Давайте предположим, что ваша таблица выглядит следующим образом:

doctor_patients:

doctor_id int,
patient_id int,
visit_date datetime

В этом случае вы можете написать запрос, подобный следующему:

select a.patient_id, b.doctor_id as doctor_1, b.visit_time_max as doctor_1_visit_time, a.doctor_id as doctor_2, max(a.visit_time) as doctor_2_visit_time
from doctor_patients a 
inner join 
(select patient_id, doctor_id, max(visit_time) as visit_time_max
from doctor_patients 
where visit_time < a.visit_time
and patient_id = a.patient_id
and doctor_id = a.doctor_id) b

Вы всегда можете поместить предложение whereв хвостовой части и применить фильтры к таблице "а".Я не уверен, будет ли этот запрос работать как есть, потому что я не пробовал его на SQL.Но я надеюсь, что это даст вам общее представление о том, что вам нужно делать.Могут быть и более эффективные способы сделать это с использованием новейших функций SQL, но это должно помочь вам.Я надеюсь, что это ответ, который вы искали!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...