2013-10-10 6 views
-1

Мне нужно написать запрос и оптимизировать его производительность, но не уверен, как правильно его записать. Вот структура таблицы.Sql Требуется помощь по заказу

"Subject Id" 
"Class" 
"Student" 
"Marks" 
"Date" 

Дата, когда была добавлена ​​запись для ученика. Эта таблица денормализуется. Поэтому я хотел знать, как получить список учеников, их класс и их последние оценки (т. Е. Метки, которые были добавлены последними) для данного объекта Id из этой таблицы, чтобы строки не повторялись. Может ли кто-нибудь предложить этот запрос?

+0

Последние отметки для каждого класса или последние отметки периода? –

+0

Пожалуйста, отредактируйте ваш вопрос и сделайте заголовок более значимым. Как и сейчас, он не дает никакой информации, которая будет полезна будущим пользователям этого сайта, которые ищут помощь. Пожалуйста, помните, когда вы публикуете здесь, что ваш вопрос должен быть полезен будущим читателям здесь, и это нужно писать с учетом этого. Вопросы, которые обычно не длится долго. (Это также помогает держать его открытым, когда вы на самом деле проявляете некоторые усилия для решения проблемы самостоятельно. Что вы пытались сделать, чтобы написать SQL самостоятельно, чтобы решить эту проблему? Пожалуйста, добавьте это, пока вы также редактируете). Благодарю. –

+0

** Попробуйте написать что-то самостоятельно **, а затем, если это не сработает, покажите нам, что вы сделали, чтобы мы могли помочь вам. Вы начинаете, мы помогаем. Мы не пишем его для вас. Покажите нам фактический код, который вы пробовали, а затем мы можем вам помочь. Скорее всего, вы получите довольно близко к ответу, если сначала попробуете сами. –

ответ

1

Это должно, по крайней мере частично выполнить это:

SELECT t.Student, t.Class, t.Marks 
FROM tableName t 
INNER JOIN (
    SELECT Student, max(Date) as MaxDate 
    FROM tableName) 
tm ON t.Student=tm.Student AND t.Date=tm.MaDate) 
WHERE "Subject ID"=givenSubjectID 

ответ, принятый от here.

Смежные вопросы