1

我试图确定客户使用 SQL 花费的总金额。我有两个表,客户和订单。Orders 对于每个单独的订单都有一个“Total_Payment_Received”。对于客户表上的给定 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';
4

2 回答 2

1
  • 您需要按客户分组。我想客户是由 (Primary Key) 识别的CustomerID,所以使用:GROUP BY Customers.CustomerID

  • 对于日期,最好使用标准化的 ISO 格式'20110515''2011-05-15'格式,因此没有歧义。当你使用类似的东西时'01/05/11',它是01-May-2011orJan-05-2011还是2001-May-11or 甚至不是很清楚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 ;
    
于 2012-05-21T00:24:36.807 回答
0

一种可能的方法是:您需要使用与此类似的子查询。

SELECT 
    CustomerID, 
    (SELECT SUM(Total_Payment_Received) Total FROM Orders WHERE Orders.CustomerId=Customers.CustomerId) Total 
FROM Customers
于 2012-05-20T21:17:31.417 回答