Prosty problem z prostym zapytaniem wybierającym i podzapytaniem

0

Witam.
Dopiero zaczynam swoją przygodę z bazami danych i mam za zadanie zrealizować takie zapytanie:
"Znaleźć z każdej kategorii jendą, największą wartość produktu"

Tabele, które trzeba wykorzystać mają następujące kolumny:

Tabela Categories:
CategoryID
CategoryName
Description
Picture

**Tabela Products: **
ProductID
ProductName
SupplierID
QuantityName
UnitPrice
UnitInStock
UnitsOnOrder
ReorderLevel
Discontinued

Całość jest raelizowana na MSSQL Serverze.

Oto co wymyśliłem - jedyny problem mam z tym in -> podzapytanie zwraca mi wiele kolumn więc nie mogłem zastosować równośći i dodatkowo nawet nie wiem jakbym mógł znaleźć dokładnie maksymalną cene dla danego CategoryID.

SELECT p1.CategoryID as kategoria,p1.ProductName, p1.UnitPrice
FROM 
Categories AS c 
inner join Products AS p1 
on c.CategoryID = p1.CategoryID
where p1.UnitPrice in
(
	select cena from(
		select p.CategoryID as kategoriaID,max(p.UnitPrice) as cena
		from Products as p
		group by p.CategoryID
		) as source
)
order by 1


Z góry dzięki za pomoc.

1
SELECT p.CategoryID AS kategoriaID, c.CategoryName, MAX(p.UnitPrice) AS cena
        FROM Products AS p JOIN Categories c ON c.CategoryID=p.CategoryID /* nie widzę categoryID w Products, ale się do tego odwołujesz... */
        GROUP BY p.CategoryID, c.CategoryName

Twoje zapytanie w podzapytaniu nie odwoływało się do nadrzędnej tabeli, w związku z czym mogło zwracać złe wyniki...

1 użytkowników online, w tym zalogowanych: 0, gości: 1