我正在尝试确定客户使用SQL花费的总金额。我有两个表,客户和订单。订单的每个订单都有一个'Total_Payment_Received'。对于Customers表上的给定CustomerID,我想要输出的所有“Total_Payment_Received”的总和。我不需要查看所有单独的订单,只需要查看他们与我们完成的业务总量。
感谢您的任何建议!
示例:
SELECT Customers.CustomerID, Customers.Company_Name
,SUM(Orders.Total_Payment_Received)
FROM Customers
JOIN Orders ON Customers.CustomerID = Order.CustomerID
WHERE Customers.LastModified BETWEEN '01/01/11 00:00:01' AND '05/15/11 11:59:59';
答案 0 :(得分:1)
您需要按客户分组。我认为客户是由(主要密钥)CustomerID
标识的,因此请使用:GROUP BY Customers.CustomerID
对于日期,最好使用标准化的ISO格式'20110515'
或'2011-05-15'
格式,因此不存在歧义。当您使用'01/05/11'
之类的内容时,如果它是01-May-2011
或Jan-05-2011
或2001-May-11
或甚至1901-May-11
,则并不完全清楚。我想你使用的是Month/Day/Year
格式,但我错了。
使用<=
和<
代替BETWEEN
进行日期范围检查也更容易:
SELECT Customers.CustomerID
, Customers.Company_Name
, SUM(Orders.Total_Payment_Received) AS Total_Amount_of_Business
FROM Customers
JOIN Orders
ON Customers.CustomerID = Order.CustomerID
WHERE Customers.LastModified >= '2011-01-01'
AND Customers.LastModified < '2011-05-16'
GROUP BY Customers.CustomerID ;
答案 1 :(得分:0)
其中一种可能的方法是: 您需要使用与此类似的子查询。
SELECT
CustomerID,
(SELECT SUM(Total_Payment_Received) Total FROM Orders WHERE Orders.CustomerId=Customers.CustomerId) Total
FROM Customers