Получить даты на несколько звонков - PullRequest
2 голосов
/ 05 марта 2012

У меня есть таблица журнала, в которой записываются даты.

Я хочу узнать дату второго и третьего вызовов.

  • Первый звонок я получаю с помощью MIN (DateCreated)
  • Я получаю последнюю дату, используя MAX (DateCreated).Это также может быть второй звонок.

Как лучше узнать дату второго и третьего звонка?

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Я бы просто собрал все 3 строки в одном запросе

SELECT TOP 3 *
FROM LogTable 
ORDER BY LogDate ASC -- DESC if you need the last 3

Если они вам нужны по одному, вы можете использовать:

WITH LogByDate AS
(
    SELECT LogDate,
    ROW_NUMBER() OVER (ORDER BY LogDate) AS 'RowNumber'
    FROM LogTable 
) 
SELECT * 
FROM LogByDate 
WHERE RowNumber = 2; -- RowNumber=3 for the third line
2 голосов
/ 05 марта 2012

Попробуйте использовать аналитические функции:

;WITH CTE AS 
(
    SELECT *, ROW_NUMBER() OVER(PARTITION BY CallId ORDER BY DateCreated) Corr
    FROM dbo.YourTable
)
SELECT *
FROM CTE
WHERE Corr IN (2,3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...