2

2 つのテーブルで JOIN を作成しようとしていて、結合されたテーブルの最初の要素が ce になっています。

私のテーブルは次のようになります:

製品

id
name

販売

idProduct
prices
date

各製品の最終販売価格を知りたいのですがFIRST、SQL 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 に答える