1
SELECT M.TradeDate, M.Expiry, M.Future
FROM MTM as M
JOIN (SELECT TradeDate, MIN(Expiry) as Expiry
FROM MTM
WHERE Code = 'GOVI'
and Type = 'F'
GROUP BY TradeDate) as T
ON M.TradeDate = T.TradeDate and M.Expiry = T.Expiry
WHERE M.Code = 'GOVI'
and M.Type = 'F'
ORDER BY TradeDate
在此查詢,我要解開一個TradeDate,最近到期(分鐘),並對應於該近期滿的「未來」的價值。這相應的未來意味着我現在必須有一個臃腫的嵌套查詢。查詢確實完美。但我相信必須有更快的速度(開發,不一定要執行),寫得更清楚。沒有嵌套查詢並且沒有重複完全相同的條件。我想也許OVER可以幫助,但我看不出如何。這真的是唯一的方法嗎?得到相應的(未聚合)值的彙總值
SQL通常是如此說明性的,但我覺得在這種我經常遇到的查詢形式中,查詢實際上並不像您在自己腦中做出的請求那樣讀取。
@丹我包括一個示例只是爲了顯示「這是如何工作的。」這不一定意味着適合我提供的確切查詢。如果你想包括一個實際的工作示例,請發表一個答案。 –