0
因此,我第一次使用SQL Server 2014 Express,并且遇到了问题。根据SQL中的一个值返回重复记录
基本上,我被要求做的事(作为学校任务的一部分)是从一个普通的“顾客表”中返回值,完全基于顾客的存储位置。
我的查询看起来像这样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
现在来解释它 - 我一直在试图找到所有的客户,其中“城市”栏目中的内容再次发生,只有那些返回 - 沿与他们的订单总额(在这里被看作货币)基于其他三个表的内容(这就是为什么JOIN在那里)。 后面的部分正在工作,但错误的客户端得到返回,而不是返回实际的“ClientNo”,只有发现的客户端返回。我似乎无法在这里找到正确的行动方针。
理想情况下,返回的信息/输出看起来有点像这样:
City, ClientNo, TotalCost -- for each client that lives in the same City as another
任何输入,将不胜感激。
你已经按城市/件/价格分组,这意味着查询结果中的所有其他字段将被“折叠”。您无法从此查询中获取任何客户端ID,并且无需从根本上重新编写查询即可获取每个城市的计数。 – 2014-11-24 14:53:46
你应该只与城市分组。 – 2014-11-24 14:55:18