#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. Какую СУБД вы используете?
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;