2

我正在尝试使用 2 个表创建一个 JOIN 并具有连接表的第一个元素。

我的表如下所示:

产品

id
name

销售量

idProduct
prices
date

我想知道每种产品的最后销售价格,但FIRSTSQL Server 中不存在该功能。

有人有想法吗?

谢谢,

4

2 回答 2

6

您可以使用排名功能,如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

排名函数 (Transact-SQL)

CTE是一个类似于子查询但更具可读性和可维护性的公共表表达式。

于 2013-07-11T08:32:45.350 回答
-2

如果是 SQL Server,只需使用:

SELECT TOP 1 * 
FROM Product p 
JOIN Sales s ON p.id = s.idProduct
ORDER BY s.Date DESC
于 2013-07-11T08:40:44.423 回答