Ваш запрос в том виде, в котором он написан, должен работать, вам просто нужно создать псевдоним подзапроса:
select *
from (select top 10 tour_date from tourtable order by tour_date desc) t
order by tour_date asc
Другой вариант, предполагающий SQL Server 2005 +:
SELECT t.tour_date
FROM (SELECT tour_date, ROW_NUMBER() OVER(ORDER BY tour_date DESC) AS RowNum
FROM tourtable) t
WHERE t.RowNum <= 10
ORDER BY t.tour_date ASC
, который также можетбыть написано с CTE :
WITH cteRowNum AS (
SELECT tour_date, ROW_NUMBER() OVER(ORDER BY tour_date DESC) AS RowNum
FROM tourtable
)
SELECT tour_date
FROM cteRowNum
WHERE RowNum <= 10
ORDER BY tour_date ASC