2010-02-12 6 views
0

У меня есть таблица контрактов с id и index_id, где max index_id на id представляет собой самую последнюю запись. Как я могу получить последний контракт в tsql?TSQL - последняя запись

ответ

0

Если вы хотите, чтобы получить последнюю индексный идентификатор (контракта) для каждого идентификатора, то вы могли бы использовать:

SELECT ID, MAX(INDEX_ID) AS Latest_Index 
FROM [Table] 
GROUP BY ID 
1
SELECT TOP 1 whatever_fields_you_want_from_contract_record 
FROM ContractTable 
ORDER BY index_id DESC 

Объяснение: TOP 1 часть ограничивает количество записей, возвращаемых запросом и ORDER BY index_id DESC часть гарантирует, что возвращаемый запись (s) будет в нисходящем (то есть самое большое значение первого) порядок index_id значения ,

Примечания:
Этот тип запроса будет работать эффективно, если существует индекс на index_id (или, если таблица относительно мала).

Кроме того, запрос может быть расширен, чтобы получить последний контракт определенного вида, добавив предложение WHERE. Например WHERE CustomerId = 123

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