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,以及更大的收入数字。

我怀疑这个收入数字是所有金额列的总和,而不是这个特定的交易 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 回答