我的数据库包含交易日期和到期日期。我想获得给定日期的第 N 个下一个到期日期。此查询工作正常:
SELECT MAX(Expiry)
FROM (SELECT TOP(@N) Expiry
FROM (SELECT DISTINCT Expiry
FROM MTM
WHERE TradeDate = @Date
and Code = @Code
and Class = 'blablablabla') as D
ORDER BY Expiry) as T
但是我可以在不使用三重嵌套的情况下做到这一点吗?基本上我需要使用MAX
,TOP
和DISTINCT
. 有没有更好的办法?