TransWikia.com

SQL | Вытянуть только тех пациентов у кого не было приёма после 2019 года

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 года?

One Answer

Попробуйте так

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP