Я использую SQL и у меня есть таблица со столбцами Tz, Suma, Erzor
, CreateDate
(DateTime) и еще несколько.
Я хочу взять все столбцы, упомянутые выше, для конкретного идентификатора пользователя, отличного от CreateDate
, также я хочу различить Suma
и Erzor
. Проблема в том, что из-за разнообразия значений CreateDate
я получаю результат, отличный от ожидаемого.
Мой запрос находится в хранимой процедуре, которая получает @Tz
(rn) в качестве входного параметра, который выглядит следующим образом (на основании проведенного мной исследования Google):
SELECT
Suma,
Ezror,
DateCreate
FROM
(SELECT
Suma,
Erzor,
DateCreate,
ROW_NUMBER() OVER (PARTITION BY DateCreate ORDER BY Suma) rn
FROM
UsrHist) t
WHERE
rn = 956321478
Таким образом, если для вышеупомянутого rn (@Tz) продублировано Suma
и Ezror
, уменьшите до 1 и получите из него самую последнюю DateCreate
и упорядочите по ней desc., Также получите все поля для этой записи, и возьми последний (верхний) 10.
Эти данные:
Tz Suma Erzor DateCreate
-------------------------------------------------------
956321478 7785 30 26-04-2019 13:40:15.563
956321478 7785 30 26-04-2019 13:45:30.785
956321478 7785 50 26-04-2019 12:45:30.152
956321478 7785 50 25-04-2019 16:43:10.652
956321478 7785 10 26-04-2019 13:55:18.752
956321478 7785 90 26-04-2019 12:51:50.359
956321478 7785 60 25-04-2019 19:32:20.715
Результат должен быть:
Tz Suma Erzor DateCreate
-----------------------------------------------------
956321478 7785 30 26-04-2019 13:45:30.785
956321478 7785 50 26-04-2019 16:43:10.652
956321478 7785 10 26-04-2019 13:55:18.752
956321478 7785 90 26-04-2019 12:51:50.359
956321478 7785 60 25-04-2019 19:32:20.715
Я не против времени, хотя важна дата