sql-server - 如何使用 SUM 进行 INNER JOIN
问题描述
我正在尝试加入两张表,一张是销售表,一张是个人资料表。两个表都有相同的客户没有,但销售表没有客户名称。我如何内部加入他们,以便我可以获得前 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
这样我就可以获得客户销售额最高的前10名
You will need to use GROUP BY
and ORDER BY
together with 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