Я пытаюсь заставить работать запрос, который будет возвращать наименьшую цену за указанную модель + TRIM.
Текущая таблица содержит следующие столбцы:
[YEAR]
,[MAKE]
,[MODEL]
,[TRIM]
,[STOCK]
,[PRICE]
,[MSRP]
,[CUSTOMERNAME]
,[CUSTOMERID]
,[DISTANCE]
,[DateInserted]
,[ID]
Что я пытаюсь сделать получить:
MODEL | TRIM | PRICE | LOWESTPRICE | MSRP | CUSTOMERNAME | RANK
-----------+--------+-------+---------------+-------+-----------------------+------
124 Spider | Abarth | 22499 | ????????????? | 32730 | Bobs Car Dealership | 3
124 Spider | Abarth | 21000 | ????????????? | 32730 | Franks Car Dealership | 2
124 Spider | Abarth | 55499 | ????????????? | 32730 | Bobs Car Dealership | 53
Что я получаю:
MODEL | TRIM | PRICE | LOWESTPRICE | MSRP | CUSTOMERNAME | RANK
-----------+--------+-------+---------------+-------+-----------------------+------
124 Spider | Abarth | 22499 | 22499 | Bobs Car Dealership | 3
124 Spider | Abarth | 22499 | 21000 | Franks Car Dealership | 2
124 Spider | Abarth | 22499 | 55499 | Bobs Car Dealership | 53
Мой запрос:
SELECT
Ranks.MODEL, Ranks.TRIM,
[PRICE], [MSRP],
[CUSTOMERNAME],
ROW_NUMBER() OVER (PARTITION BY Ranks.MODEL, Ranks.TRIM ORDER BY PRICE ASC) AS Rank
FROM
[PageRank].[dbo].[BHAMock] Ranks
JOIN
(SELECT
MIN(PRICE) AS LowestPrice,
MODEL,
TRIM
FROM
[PageRank].[dbo].[BHAMock]
GROUP BY
MODEL, TRIM) LowestPrice ON Ranks.MODEL = LowestPrice.MODEL
AND Ranks.TRIM = Ranks.TRIM
WHERE
PRICE IS NOT NULL