Вот мой запрос:Дата не сортировать должным образом с помощью SQL над разделом
;WITH CTE
AS
(
SELECT ComputerName
, LastUpdate
, ROW_NUMBER() OVER(PARTITION BY ComputerName ORDER BY LastUpdate ASC) CN
FROM My_Table
)
SELECT *
FROM CTE
WHERE CN > 0 and ComputerName = '4408Q12'
Это результат:
<pre>
ComputerName LastUpdate
4408Q12 Feb 10 2015 3:45PM
4408Q12 Feb 11 2015 6:10PM
4408Q12 Jan 27 2015 2:09PM
4408Q12 Jan 28 2015 1:10PM
</pre>
Почему 10 февраля подходя до 11 февраля? Даже DESC это неправильно, всегда второй, а не первый. Когда я использую CN> 1 февраля 10, остается. Мне нужно самая последняя дата в результате. Какого черта я здесь не хватает?
Похоже, это создание даты, как «строки» и их сортировки в алфавитном порядке. Являются ли даты фактическими типами данных DATE на SQL-сервере? – mrunion
'заказать по ... asc'? Почему он не должен быть первым? Вы сортируете строки, а не даты. –
Вы ничего не делаете со своим номером строки. Вы строите его внутри своего CTE, а затем говорите «где его больше нуля» (это все), но потом вы не выбираете его или не сортируете по нему. – Xedni