2012-11-17 2 views
3

좋아요, 저는 항상이 질문에 답했지만 오늘까지는 절대로 필요하지 않았습니다.수익을 기준으로 거래를 정렬합니다. MySQL의 테이블 행

일반적으로 모든 거래를 포착하고 각각을 검토하여이 거래와 관련된 모든 주문에서 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에 대한 행의 모든 ​​금액 항목의 합계 인 수익 (맞춤 항목)을 선택합니다.

답변

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