У меня есть таблица с повторяющимися реестрами студентов, но каждая строка представляет собой курс и статус этого учащегося.Сравните разницу между двумя строками в одной таблице
Я с помощью SQL Server 2008
Что-то вроде этого:
+--------+-------------+-------------------------+---------------+-----------------+
| ID | STUDENT | DATE | COURSE | STATUS |
+--------+-------------+-------------------------+---------------+-----------------+
| 21245 | ROBERTA ZOR | 2014-01-08 00:00:00.000 | CIÊNCIAS | FORMADO |
| 39316 | IGOR BASTOS | 2008-04-07 00:00:00.000 | CIÊNCIAS | CANCELADO |
| 39316 | IGOR BASTOS | 2014-01-08 00:00:00.000 | ADMINISTRAÇÃO | FORMADO |
| 39961 | LUIZ FELIPE | 2014-02-12 00:00:00.000 | ADMINISTRAÇÃO | CURSANDO |
| 105937 | DANIEL CHO | 2014-02-14 00:00:00.000 | ADMINISTRAÇÃO | CURSANDO |
| 105937 | DANIEL CHO | 2014-02-10 00:00:00.000 | ADMINISTRAÇÃO | RESERVA DE VAGA |
+--------+-------------+-------------------------+---------------+-----------------+
мне нужна самая последняя СТАТУСА от комбинации СТУДЕНТА/курс для всех студентов.
UPDATE
Чтобы получить статус я использую другой присоединиться:
SELECT a.ID, a.STUDENT, a.COURSE, MAX(a.DATE) as DATE
into #TABLE
FROM #STUDENTS a
INNER JOIN #STUDENTS b
on a.ID = a.ID
and a.COURSE = b.COURSE
and a.STATUS <> b.STATUS
GROUP BY a.ID,a.STUDENT, a.COURSE
select c.ID, c.STUDENT, c.COURSE, c.STATUS
into #FINAL_TABLE
from #TABLE t
inner join #STUDENTS C
on C.ID = T.ID and C.STUDENT = T.STUDENT and C.COURSE = T.COURSE
ожидаемый выход? – OGHaza
Я обновил таблицу. В случае с Дэниелом Чоем мне нужен ряд с CURSANDO STATUS. –
Вы ищете только тех студентов, которые изменили статус в рамках курса, или вы действительно ищете самый последний статус для каждого курса, в котором находится учащийся? –