1

顧客が SQL を使用して費やした合計金額を判断しようとしています。Customers と Orders の 2 つのテーブルがあります。注文には、個々の注文ごとに「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';
4

2 に答える 2

1
  • 顧客ごとにグループ化する必要があります。顧客は (Primary Key) で識別されると思うCustomerIDので、次を使用します。GROUP BY Customers.CustomerID

  • 日付については、標準化された ISO 形式'20110515'または形式を使用する方がよいため'2011-05-15'、あいまいさはありません。のようなものを使用している場合、それがまたはまたはまたは であるか'01/05/11'どうかは明確ではありません。形式を使用していると思いますが、間違っている可能性があります。01-May-2011Jan-05-20112001-May-111901-May-11Month/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

考えられる方法の 1 つは次のとおりです。これと同様のサブクエリを使用する必要があります。

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