SQL加入MAX函数

时间:2013-03-24 18:55:46

标签: sql-server-2008

我在sql ....中创建了两个表。

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 Soap,Price 42,Category Name Soap。 2.Sunsilk洗发水,价格140,分类洗发水。

请使用join操作回复sql查询。

1 个答案:

答案 0 :(得分: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