获取第二个最新日期的价格的Sql查询

获取第二个最新日期的价格的Sql查询,sql,sql-server,syntax,Sql,Sql Server,Syntax,我有一个疑问: select @cost = @cost + (select top 1 price from (select top 2 price, date from myTable order by date DESC) order by date ASC ) 我得到一个错误:关键字“order”附近的语法不正确。 如何修复此问题?我猜此子查询 (select top 2 price, date from myTable

我有一个疑问:

select @cost = @cost +                  
    (select top 1 price from
    (select top 2 price, date  from myTable order by date DESC)
     order by date ASC
)
我得到一个错误:关键字“order”附近的语法不正确。 如何修复此问题?

我猜此子查询

(select top 2 price, date  from myTable order by date DESC)
需要一个别名,像这样

(select top 2 price, date  from myTable order by date DESC) sq
但我会这样写:

SELECT @cost = @cost + (
SELECT price FROM (
SELECT price, date, ROW_NUMBER() OVER (ORDER BY date DESC) AS rownum
) sq WHERE rownum = 2
)
我猜这个子查询

(select top 2 price, date  from myTable order by date DESC)
需要一个别名,像这样

(select top 2 price, date  from myTable order by date DESC) sq
但我会这样写:

SELECT @cost = @cost + (
SELECT price FROM (
SELECT price, date, ROW_NUMBER() OVER (ORDER BY date DESC) AS rownum
) sq WHERE rownum = 2
)