我在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查询。
答案 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