2013-03-24 2 views
-1

Я создал две таблицы в SQL ....SQL Регистрация с функцией MAX

1.Product

с

ProductId as Primary key, 
ProductName,ProductPrice 
and ProductCategoryId as Foreign Key 

, который относится к primary key of ProductCategory table.

2.ProductCategory

с

CategoryId as Primary Key and CategoryName. 

Я хочу, чтобы отобразить продукт, имеющий максимальную цену в каждой категории .....

Предположим, что есть две категории ..

1.Soap 
2.Shampoo. 

и в таблице продуктов есть 4 ряда ...

1.Dove Soap with price 42Rs 
2.Dettol Soap with price 25Rs 
3.Dove Shampoo with price 120Rs and 
4.Sunsilk Shampoo with Price 140Rs 

Тогда выход должен быть как ....

1.Dove Мыло, Цена 42, Категория Название Мыло. Шампунь 2.Sunsilk, цена 140, Категория Название Шампунь.

Ответы pls на запрос sql для этого, используя операцию соединения.

+1

ли вы пытались что-то * до * спрашивать? Возможно, вы должны спросить своего учителя. – MLeblanc

+0

Может ли быть элемент с двумя одинаковыми максимальными значениями для одной категории? как другое мыло, но его цена равна 42Rs? Если это возможно, как вы хотите их показать? – GayanSanjeewa

ответ

0

Попробуйте

;WITH MaxValues 
AS 
(
SELECT MAX(p.ProductPrice) MaxPrice, p.ProductCategoryId ProductCategoryId 
FROM Product p 
GROUP BY p.ProductCategoryId 
) 
SELECT p.ProductName, m.MaxPrice, c.CategoryName 
FROM MaxValues m JOIN Product p ON m.ProductCategoryId = p.ProductCategoryId 
JOIN ProductCategory c ON p.ProductCategoryId = c.CategoryId 
WHERE p.ProductPrice = m.MaxPrice 
Смежные вопросы