所以我第一次使用SQL Server 2014 Express并且遇到了问题。
基本上,我被要求做的事情(作为在学校的任务的一部分)是从常规"客户表"返回价值,完全基于客户'存储的位置。
我的查询看起来像这个atm:
SELECT
City,
COUNT(Clients.ClientNo) AS AmountOfClients,
Orders.Pieces * products.Price TotalPrice
FROM
Clients
INNER JOIN
ClientOrder ON Clients.ClientNo = ClientOrder.ClientNo
INNER JOIN
Orders ON ClientOrder.OrderNo = Orders.OrderNo
INNER JOIN
products ON Orders.ProductNo = products.ProductNo
GROUP BY
City, ClientOrders.Pieces, products.Price
HAVING
COUNT(Clients.ClientNo) > 1
现在解释一下 - 我一直试图找到所有客户所在的城市" City"列重新发生并仅返回那些 - 以及它们的订单总量(此处显示为货币),基于其他三个表的内容(这就是JOIN存在的原因)。 后一部分正在运行,但错误的客户端被返回,而不是返回实际的" ClientNo",只返回找到的客户端数量。我似乎无法在这里找到正确的行动方案。
理想情况下,返回的信息/输出看起来有点像这样:
City, ClientNo, TotalCost -- for each client that lives in the same City as another
任何意见都会受到赞赏。
答案 0 :(得分:1)
您应该在group by子句中仅使用City
,并使用
SUM(Orders.Pieces * products.Price) TotalPrice
以获取每个城市订单的总和(产品总和)。