Несколько записей с минимальной функцией

#sql

#sql

Вопрос:

 select distinct SD.RefNo,  MIN(Datefrom) E_DateFrom ,EmploymentStatusID 
from StudentEmploymentHistory SEH
RIGHT JOIN SDetail SD ON SD. StudentID  = SEH.StudentID
  

Я хочу иметь возможность получать результат только в виде одной записи, но поскольку Employmentstatus содержит несколько записей, теперь у меня есть более одной записи

Мой результат, нужна только запись с минимальной датой из

1

Комментарии:

1. Какую СУБД вы используете?

2. ПРАВИЛЬНОЕ СОЕДИНЕНИЕ… Большинству людей main table left join optional data гораздо легче получить , чем optional data right join main table .

Ответ №1:

Использование оконных функций:

 select sd.RefNo,  seh.E_DateFrom, seh.EmploymentStatusID 
from SDetail sd left join
     (select seh.*,
             row_number() over (partition by seh.StudentID order by Datefrom) as seqnum
      from StudentEmploymentHistory SEH
     ) seh
    on seh.StudentID = sd.StudentID and seh.seqnm = 1;