我正在尝试使用 2 个表创建一个 JOIN 并具有连接表的第一个元素。
我的表如下所示:
产品
id
name
销售量
idProduct
prices
date
我想知道每种产品的最后销售价格,但FIRST
SQL Server 中不存在该功能。
有人有想法吗?
谢谢,
我正在尝试使用 2 个表创建一个 JOIN 并具有连接表的第一个元素。
我的表如下所示:
产品
id
name
销售量
idProduct
prices
date
我想知道每种产品的最后销售价格,但FIRST
SQL Server 中不存在该功能。
有人有想法吗?
谢谢,
您可以使用排名功能,如ROW_NUMBER
:
WITH CTE AS(
SELECT id, name, idProduct, prices, date,
RN = ROW_NUMBER() OVER (PARTITION BY idProduct ORDER BY date DESC)
FROM dbo.Product p INNER JOIN dbo.Sales s on p.id = s.idProduct
)
SELECT * FROM CTE WHERE RN = 1
这CTE
是一个类似于子查询但更具可读性和可维护性的公共表表达式。
如果是 SQL Server,只需使用:
SELECT TOP 1 *
FROM Product p
JOIN Sales s ON p.id = s.idProduct
ORDER BY s.Date DESC