SQL 服务器:TOP 和 Distinct

SQL Server : TOP along with Distinct

我有两个 table ProductsPurchaseDetails

Products table 的架构是

ProductId  (primary key)
ProductName
CategoryId
Price
QuantityAvailable

PurchaseDetails table 的架构是

PurchaseId
EmailId
ProductId
QuantityPurchased
DateOfPurchase

题目要求我找出购买量最大的TOP 3产品。

我写了这个 SQL 查询:

Select TOP 3 
    Distinct(ProductName), Price, QuantityPurchased
from 
    Product, PurchaseDetails
where 
    Product.ProductId = PurchaseDetails.ProductId
order by 
    QuantityPurchased DESC

但是上面的查询抛出了一个错误。我不明白为什么上述查询会产生错误?

以下查询将为您提供购买量最大的前 3 个产品

Select TOP 3 ProductName,sum(Price) as [price],sum(QuantityPurchased) as QuantityPurchased
    from Product , PurchaseDetails
    where Product.ProductId=PurchaseDetails.ProductId
    group by ProductName
    order by QuantityPurchased DESC
Select TOP 3 ProductName,sum(Price) as [price],sum(QuantityPurchased) as QuantityPurchased
    from Product , PurchaseDetails
    where Product.ProductId=PurchaseDetails.ProductId
    group by ProductName
    order by QuantityPurchased DESC