У меня есть таблица, похожая на этот CancelLog
|ID| membrecia| User | DateCancel | Motivo |
| 2| 1 | uS1 | 7/29/2011 | ... |
| 3| 1 | uS2 | 7/30/2011 | ... |
| 6| 1 | uS1 | 8/02/2011 | ... |
| 1| 2 | uS1 | 7/28/2011 | ... |
| 4| 2 | uS2 | 7/30/2011 | .... |
| 5| 2 | uS3 | 8/01/2011 | . |
| 6| 3 | uS1 | 8/02/2011 | . |
и я хотел бы получить самую последнюю запись каждого членства, чтобы сказать что-то вроде этого
|ID| membrecia| User | DateCancel | Motivo |
| 6| 1 | uS1 | 8/02/2011 | ... |
| 5| 2 | uS3 | 8/01/2011 | . |
| 6| 3 | uS1 | 8/02/2011 | . |
Я делал что-то похожее на это,
select l.membrecia, l.[USER] , l.DateCancel, count(*), max(l.DateCancel)
from CancelLog l
group by l.membrecia, l.[USER], l.DateCancel;
count(*) y max(l.DateCancel)
Я использую их только для информации, в финальном запросе их не будет.
если это дает мне самые последние результаты, но если членство «отменено» * несколькими разными пользователями, оно приносит мне данные всех пользователей, которые его отменили.
|ID| membrecia| User | DateCancel | Motivo |
| 3| 1 | uS2 | 7/30/2011 | ... |
| 6| 1 | uS1 | 8/02/2011 | ... |
| 1| 2 | uS1 | 7/28/2011 | ... |
| 4| 2 | uS2 | 7/30/2011 | .... |
| 5| 2 | uS3 | 8/01/2011 | . |
Я хотел бы получить записи, подобные показанным в таблице 2.
*При отмене "Причина" может быть изменена, и в связи с этим изменением создается новая запись в журнале.
изменить с motivo
«Временное удаление» на «Окончательное удаление», поэтому меня интересует только последнее изменение независимо от пользователя, но мне нужен последний пользователь, внесший изменения в результаты.
Кто-нибудь знает, как я могу получить эти журналы?
То, что вы ищете, достигается очень легко с помощью оконной функции
row_number()
. Нет необходимости использовать временные таблицы и циклы, что слишком сложно и дорого для такого типа запроса:Уважаемый, я сделал упражнение, чтобы иметь возможность получать данные, которые вы запрашиваете, так, как вы их запрашиваете, я прилагаю запрос о том, как я это сделал, возможно, это может вам помочь. Привет.
Здесь Запрос.
Спасибо тем, кто помог, но мне удалось решить это следующим образом
Как вы можете видеть, я сделал подзапрос, в котором я получаю самый последний идентификатор данного членства, упорядочивая его от самого высокого к самому низкому, получая этот самый высокий идентификатор, я сравниваю его с идентификатором основного запроса и получаю желаемый результат.