-2

私は POS システムを開発しており、購入額が最も多い顧客を見つける必要があります。

これらの 2 つのテーブルがあります。1 つ目は顧客とトランザクション番号を保持し、2 つ目はトランザクション番号とトランザクションの合計金額を保持します。ここにテーブルがあります

--------------------------
| 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を使用しています。

4

1 に答える 1

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
)
于 2012-10-26T12:49:28.547 に答える