我正在尝试加入两张桌子,一张与销售,一张与个人资料。两个表都有相同的客户编号,但销售表没有客户名称。我如何内部加入他们,以便获得客户销售额最高的前10名,但我想显示他们的名字。我试图在下面使用查询:
SELECT TOP 10 b.Amount, a.CustomerName  
FROM       SalesDetail b 
INNER JOIN CustomerProfile a 
        ON a.CustomerNo = b.CustomerNo 
ORDER BY Amount DESC
 
并显示重复的客户名称,并且未汇总金额。尝试对客户进行分组将提示错误
SELECT TOP 10 b.Amount, a.CustomerName  
FROM       SalesDetail b 
INNER JOIN CustomerProfile a 
        ON a.CustomerNo = b.CustomerNo 
GROUP BY a.CustomerName 
ORDER BY b.Amount DESC
 
没有内部连接,这是我到目前为止所做的。我可以总结一下,但是我只会得到客户编号和销售额。
SELECT  TOP 10 CustomerNo, SUM (Amount) AS 'Total' 
FROM     SalesDetail 
GROUP BY CustomerNo
 
感谢您的任何建议。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
只需INNER JOIN与ON CustomerNo
FROM       SalesDetail s
INNER JOIN CustomerProfile c
        ON s.CustomerNo = c.CustomerNo
 
这样我就可以获得前十大客户总销售额
您将需要与GROUP BY和ORDER BY一起使用TOP
SELECT   TOP (10) c.CustomerName, SUM (Amount) AS Total
FROM       SalesDetail s
INNER JOIN CustomerProfile c
        ON s.CustomerNo = c.CustomerNo
 
GROUP BY c.CustomerName
 ORDER BY SUM (Amount) DESC