2 つのテーブルで JOIN を作成しようとしていて、結合されたテーブルの最初の要素が ce になっています。
私のテーブルは次のようになります:
製品
id
name
販売
idProduct
prices
date
各製品の最終販売価格を知りたいのですがFIRST
、SQL Server に関数がありません。
誰かがアイデアを持っていますか?
ありがとう、
2 つのテーブルで JOIN を作成しようとしていて、結合されたテーブルの最初の要素が ce になっています。
私のテーブルは次のようになります:
製品
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