我正在为我的SQL研究工作在northwind数据库,我试图每年显示购买量最大的客户 .
在我看来,我需要在一个选择中做一个选择,以获得我正在寻找工作的结果 . 我设法为客户获得最多的订单,但我不能订购它或者只是将它分开多年 .
这是我到目前为止所做的事情:
select top 1
(count([Order Details].OrderID)) 'NumOfOrders',
Customers.CompanyName, year(OrderDate) 'OrderYear'
from
[Order Details], Orders, Customers
where
[Order Details].OrderID = Orders.OrderID
and Orders.CustomerID = Customers.CustomerID
and (year(OrderDate) = 1996 or year(OrderDate) = 1997 or year(OrderDate) = 1998)
group by
Customers.CompanyName, year(OrderDate)
order by
NumOfOrders desc
2 回答
如果从脚本中删除TOP 1,您将看到自己想要的内容 . 但戈登说,你需要提高你的查询技巧 . 我找到了一些链接,你可以检查一下:
What is the proper syntax in SQL Server for addressing tables?
Explicit vs implicit SQL joins
What is the difference between “INNER JOIN” and “OUTER JOIN”?
What's the purpose of SQL keyword “AS”?
示例脚本:
如果我能够正确理解您想要实现的目标(每年最有 Value 客户的前1名),那么您可以尝试这样做: