2012-10-26 76 views
-2

我正在開發一個銷售點系統,並且需要找到購買量最高的客戶。從兩張表中找出MAX和SUM

我有這兩張表,第一張持有客戶和交易編號,第二張持有交易編號和交易總額。這裏是表

-------------------------- 
| Customer | Transaction | 
-------------------------- 
| 1000  | 902134  | 
-------------------------- 
| 1001  | 798249  | 
-------------------------- 
| 1001  | 312523  | 
-------------------------- 
| 1002  | 741284  | 
-------------------------- 
| 1000  | 122354  | 
-------------------------- 

------------------------------ 
| Transaction | Total_Amount | 
------------------------------ 
| 902134  | 9000.00  | 
------------------------------ 
| 798249  | 3000.00  | 
------------------------------ 
| 312523  | 5000.00  | 
------------------------------ 
| 741284  | 4000.00  | 
------------------------------ 
| 122354  | 1000.00  | 
------------------------------ 

我需要得到具有10,000.00價值交易的客戶代碼1000。

我正在使用MySQL和PHP。

+0

從這個問題正是你要總結,找到MAX值目前還不清楚。 – MikeT

+0

你寫了一個查詢嗎?你可以發佈嗎? – Pitchinnate

+0

與答案一起,這將成爲關於Mysql的教科書的完美材料。這使我想到了這樣的培訓材料已經存在。對於這些基本主題,請先做自己的研究。 – hakre

回答

3

這將檢索具有相同transaction_amount並且是(可能)對所有客戶的最高總金額價值客戶。

SELECT aa.customer, SUM(bb.Total_AMount) GrandTotal 
FROM tableCustomer aa 
     LEFT JOIN tabletransaction bb 
      ON aa.`Transaction` = bb.`Transaction` 
GROUP BY aa.customer 
HAVING SUM(bb.Total_AMount) = 
(
    SELECT MAX(totalSum) 
    FROM 
    (
     SELECT SUM(b.Total_AMount) totalSUM 
     FROM tableCustomer a 
       LEFT JOIN tableTransaction b 
        ON a.`Transaction` = b.`Transaction` 
     GROUP BY a.customer 
    ) x 
) 
+1

+1爲好的解決方案,無需排序 – MarcDefiant

+1

啊,明白了。 – hims056

+1

謝謝!這只是工作! –