我有一个查询,我希望它列出每个股票项目的所有最新交易价格。我试图使用MAX()列出每个项目的所有最新交易,但不包括价格,并且它有效,但当我包括价格时,该方法将不起作用。
这是我的问题

SELECT MAX(DocDate) AS DocDate, StockCode, Price
FROM StockPurchasePriceHistory spph
INNER JOIN Stocks s
ON spph.Stock = s.Id
GROUP BY StockCode, Price
ORDER BY StockCode ASC

输出
sql - 根据每个项目的最新交易日期选择数据-LMLPHP

最佳答案

使用行号

select * from (SELECT row_number()over(partition by StockCode order by DocDate desc) rn
 , StockCode, Price
FROM StockPurchasePriceHistory spph
INNER JOIN Stocks s
ON spph.Stock = s.Id
) a where a.rn=1

10-05 20:11