1

私は2つのテーブルを持っています:

create table sales (
    unitcode int ,
    categorycode smallint ,
    ddate varchar(10) ,
    price float
)

create table timetable (
    year varchar(4) ,
    month varchar(11) ,
    ddate varchar(10)
)

検索するサブクエリを作成したい: 各年の各月で、どの 2 つの製品 (ユニットコード、カテゴリコード) が価格のトップを持っていますか?

4

1 に答える 1

0

これを試して

;WITH cte AS (
SELECT  unitcode,categorycode,t.ddate,price,ROW_NUMBER() OVER (PARTITION BY t.[year],t.[month] ORDER BY price desc) AS price_order,t.[year],t.[month]
FROM  sales s 
INNER JOIN timetable t 
    ON t.ddate = s.ddate
)
SELECT  *
FROM    cte
WHERE price_order <= 2
ORDER BY [year] ASC,[month] ASC,price DESC
于 2012-10-30T18:56:13.157 に答える