Member 12640353 Ответов: 2

Чтобы восстановить данные в качестве последней даты и времени


Мне нужно получить данные, чья последняя дата и время ВОЗ статус 1.

Имя | Teststatus | ExamDate | Subject
Йохан| 0 | 2019-01-01 25:46 | Математика
Йохан| 1 | 2019-01-01 25:48 | Математика
Йохан| 0 | 2019-01-01 25:47 | Математика
Оперативная Память| 0 | 2019-01-01 25:13 | Математика
Оперативная Память| 0 | 2019-01-01 25:45 | Математика
Оперативная Память| 1 | 2019-01-01 25:42 | Математика

Что я уже пробовал:

выберите восточному времени.Имя, Et.Статуса Максимум(По Восточному Времени.ExamDate)
из экзамена Et присоединяйтесь к предмету S на Et.Код =S. код
группа по Et,имени,Et.статусу


Имя | Teststatus | ExamDate
Йохан| 1 | 2019-01-01 25:48
Оперативная память| 0 | 2019-01-01 25:45
Оперативная память| 1 | 2019-01-01 25:42
Йохан| 0 | 2019-01-01 25:47

Но мне нужно получить последнюю дату время и кто сдал экзамен

Имя | Teststatus | ExamDate
Йохан| 1 | 2019-01-01 25:48

2 Ответов

Рейтинг:
1

Christian Graus

with co
(
Select code, max(examdate) as examdate from exam group by code
)
select et.name, et.status, c.examdate
join co c on et.code = c.code


Почему вы присоединились к теме, Если вы не выбираете из нее?

вы также можете присоединиться к другому столу, чтобы потянуть, если они пройдут, но вы не показали мне, как это сделать


Рейтинг:
0

OriginalGriff

GROUP BY не делает того, что ты хочешь - особенно так. Вы можете посмотреть здесь: SQL GROUP By и ошибка "имя столбца недопустимо в списке выбора, потому что..." [^] что объясняет, что он делает!

Вам нужно подумать о своих данных и о том, что вы хотите получить:

"Passed test"
и
"Latest date"
Так что сделайте это:
SELECT TOP 1 Name, TestStatus, ExamDate FROM Exam
WHERE TestStatus = 1
ORDER BY ExamDate DESC
TOP 1 говорит "вернуть только первое значение", то WHERE ограничивает его пройденными тестами, а ORDER BY определяет порядок, в котором строки возвращаются.


0x01AA

Разве это не должно быть "TOP(1)" вместо "TOP ONE"?

OriginalGriff

Да - исправлено.
Ой... Очевидно, мне нужно было выпить еще кофе ... хорошее место! :большой палец вверх: