加入第一张表格,第二个表的最新记录



我有表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

最新更新