3

さて、私はいつもこれに疑問を抱いていましたが、今日まで本当に必要ではありませんでした.

通常、すべての取引を取得し、それぞれを調べて、この取引に関連するすべての注文から SUM(金額) を見つけます。(PHP)

次に、正常に動作する単純な uasort() を実行します。

しかし今、私はそれをすべてSQLクエリで行う必要があります。

これは私が試したことです:

SELECT deals.ID, SUM(orders.amount) AS revenue FROM deals
JOIN orders ON (orders.deal_id = deals.id)
ORDER BY revenue DESC

これで、「ランダムな」取引 ID を持つ 1 つの行が得られ、収益の数値が大きくなります。

収益のこの数値は、すべての金額列の合計であり、この特定の取引 ID ではないと思われます。

私が望むのは、各取引 ID の行であり、列の収益に正しい数字があり、すべての行が DESC で並べ替えられています。

これはどのように行われますか?取引を並べ替えるには、収益 (カスタム列) から除外します。これは、それぞれの取引 ID の行のすべての金額列の合計です。

4

1 に答える 1

2

GROUP BYあなたは条項を欠いている

SELECT  deals.ID, SUM(orders.amount) AS revenue 
FROM    deals
        INNER JOIN orders 
            ON orders.deal_id = deals.id
GROUP BY deals.ID
ORDER BY revenue DESC
于 2012-11-17T21:54:45.757 に答える