Sql 寻找最畅销的产品

Sql 寻找最畅销的产品,sql,Sql,我正试图得到玛格丽特·皮科克(Margaret Peackok)最畅销的产品,它带来了 11月份盈利最多的是w3schools.com上的数据库,以防你们想看到它的结构。这是我写的问题 SELECT e.FirstName, e.LastName, p.ProductName, od.Quantity, p.Price, o.OrderDate FROM Employees e INNER JOIN Orders o ON e.EmployeeID = o.EmployeeID IN

我正试图得到玛格丽特·皮科克(Margaret Peackok)最畅销的产品,它带来了 11月份盈利最多的是w3schools.com上的数据库,以防你们想看到它的结构。这是我写的问题

SELECT e.FirstName, e.LastName, p.ProductName, od.Quantity, p.Price, o.OrderDate
FROM
  Employees e
  INNER JOIN Orders o ON e.EmployeeID = o.EmployeeID
  INNER JOIN OrderDetails od ON o.OrderID = od.OrderID
  INNER JOIN Products p ON od.ProductID = p.ProductID
WHERE 
  o.OrderDate BETWEEN '1996-11-01' AND '1996-11-30'
  AND e.FirstName = 'Margaret'
  AND e.LastName = 'Peacock'
GROUP BY
  e.FirstName,
  e.LastName,
  p.ProductName,
  od.Quantity,
  p.Price,
  o.OrderDate
ORDER BY p.Price DESC
结果如下:

FirstName   LastName    ProductName   Quantity   Price    OrderDate
Margaret    Peacock     Côte de Blaye      10             263.5   1996-11-22
Margaret    Peacock    Thüringer Rostbratwurs  35            123.79   1996-11-22
Margaret    Peacock    Rössle Sauerkraut       30              45.6   1996-11-22

max函数通常是有效的,但是您需要一些了解成本的方法来获得实际利润

SELECT MAX(p.PRICE - p.[Cost Field])
FROM
  Employees e
  INNER JOIN Orders o ON e.EmployeeID = o.EmployeeID
  INNER JOIN OrderDetails od ON o.OrderID = od.OrderID
  INNER JOIN Products p ON od.ProductID = p.ProductID
WHERE 
  o.OrderDate BETWEEN '1996-11-01' AND '1996-11-30'
  AND e.FirstName = 'Margaret'
  AND e.LastName = 'Peacock'
GROUP BY
  e.FirstName,
  e.LastName,
  p.ProductName,
  od.Quantity,
  p.Price,
  o.OrderDate
ORDER BY p.Price DESC

你的问题是什么?你是说
数量
*
价格
更大的产品吗?Cote de Blaye太贵了(除非你用的是旧法郎或比利时法郎)。答案取决于rdbms,你没有具体说明。谢谢伙计们,中微子这正是我想要的:)谢谢,抱歉伙计们,忘了提到我是一名DBA初学者,刚刚完成课程,最近获得了认证,所以我仍在尝试了解一些事情。