0

说到 SQL 服务器,我仍然是个菜鸟。我知道一些事情,但其他人似乎仍然如此混乱。我知道你练习得越多,你就会越好。好吧,我正在做这部分工作,这让我有点困惑。它正在使用northwind 数据库显示从花费超过25,000 美元的客户那里购买的最近五个订单。好的,我知道我将使用客户表和订单表。让我抓狂的是,你是如何得到这 5 个花费 25,000 美元的客户的。我敢肯定我可能知道,但我的头脑并不认为它知道。

我认为这对我来说很难的原因是因为我有一个订单详细信息,其中包含 OrderID、ProductID、UnitPrice、Quantity 和折扣。

那么你的订单没有任何处理金钱问题的信息。然后你有客户,我知道我需要用它来展示花费超过 25,000 的 5 位客户。

使用订单详细信息,我不知道如何很好地使用它,因为它们分为两个名称。我很受伤,我可以在它周围加上一个括号,因为这两个词之间有一个空格。

我相信人们会对此投反对票,或者说我在 SQL 假人上看到了这一点,但我只是想理解这一点。我知道您看不到我的数据库以查看我在看什么,但我也会尽力解释为什么我如此困惑。我只是想理解这一点。感谢所有关注这个话题的人。

这就是我到目前为止所拥有的,我知道我想在其中添加 5 我只是不明白在哪里。

  SELECT ContactName FROM Customers
    INNER JOIN [Order Details]ON OrderId = 
CustomerID
INNER JOIN Orders ON Product.ID = Orders.ID
WHERE UnitPrice >= 25000
4

1 回答 1

0

您需要加入来自订单详细信息的子查询,以便获得订单总额。

select Top 5 [Customer].ContactName,[Order].OrderDate,detail.total
from [Customer] inner join
[Order] on [Customer].CustomerID = [Order].CustomerID inner join
(SELECT [OrderID],SUM(([UnitPrice]*[Quantity])-[Discount]) as total FROM [OrderDetail] GROUP BY [OrderID]) as detail on [Order].OrderID = detail.OrderID
WHERE detail.total > 25000
ORDER BY [Order].OrderDate DESC
于 2011-10-12T15:28:00.403 回答