我有表Product
和表Sales
i Product
表我有带有主键prodId
的产品列表,在Sales
表中,该产品的总销售额。
我想通过与Sales
Table的最新记录(使用SalesDate
列)一起从表Product
获取数据。
Sales
表可以包含0到n特定产品的记录数量。
我知道我可以使用子问题做到这一点,但是由于性能开销,我需要避免使用。我也不想使用max
函数,因为它需要我在组中提及f coluts。
我可以使用简单的加入吗?
使用row_number功能。像这样
;with cte
as
(
select
SeqNo = ROW_NUMBER() OVER(PARTITION BY ProductId ORDER BY SalesDate DESC),
*
FROM Sales
)
SELECT
*
FROM Product p
LEFT JOIN cte
ON p.ProducId = cte.ProductId AND cte.SeqNo = 1