Stack Overflow на русском Asked on February 11, 2021
Есть таблицы [Patient], [Schedule], [SchedulePatient].
Используя такой запрос я хотел вытащить пациентов([Patient]) у которых не было приёма ([Schedule],[SchedulePatient]) после определённого года используя этот запрос:
SELECT Patient.PatientID, Patient.PatientName, Patient.PatientPersonalNumber, Schedule.ScheduleID, Schedule.ScheduleName,Schedule.ScheduleStatusRef, Schedule.ScheduleEndTime, SchedulePatient.ScheduleRef, SchedulePatient.PatientRef
FROM Patient INNER JOIN
SchedulePatient ON Patient.PatientID = SchedulePatient.PatientRef INNER JOIN
Schedule ON SchedulePatient.ScheduleRef = Schedule.ScheduleID where ScheduleEndTime < '2019-01-01'
Есть колонки ScheduleStartTime и ScheduleEndTime соответственно начало и конец приёма. Данные хранят в таком виде 2016-07-05 17:30:00.000. Как правильно построить условия что бы вытащить только пациентов которые ходили на приём до 2019 года?
Попробуйте так
SELECT DISTINCT
Patient.PatientID,
Patient.PatientName,
Patient.PatientPersonalNumber
FROM
Patient
LEFT JOIN SchedulePatient
INNER JOIN Schedule
ON SchedulePatient.ScheduleRef = Schedule.ScheduleID
AND Schedule.ScheduleEndTime >= '2019-01-01'
ON Patient.PatientID = SchedulePatient.PatientRef
INNER JOIN SchedulePatient AS SchedulePatient1
INNER JOIN Schedule AS Schedule1
ON SchedulePatient1.ScheduleRef = Schedule1.ScheduleID
AND Schedule1.ScheduleEndTime < '2019-01-01'
ON Patient.PatientID = SchedulePatient1.PatientRef
where
SchedulePatient.SchedulePatientID IS NULL
Answered by Aziz Umarov on February 11, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP