从两个表中查找MAX和SUM

时间:2012-10-26 12:44:44

标签: php mysql sql

我正在开发销售点系统,需要找到购买量最高的客户。

我有这两个表,第一个包含客户和交易号,第二个表包含交易号和交易总金额。这是表

--------------------------
| 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。

1 个答案:

答案 0 :(得分: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
)