2011-10-19 2 views
0

내 쿼리는 다음과 같습니다.SQL 쿼리 집계 값이 작동하지 않습니다?

SELECT customers.state, SUM(orders.quantity * items.unitcost) AS 'value of orders' 
FROM customers, items, orders 
WHERE customers.custID = orders.custID 
AND orders.itemID = items.itemID 
GROUP BY customers.state 
LIMIT 0 , 50 

문제가 있습니까? 정답처럼 보이는 답변을 제공하지만 일부는 수동으로 (테이블에 50 개가 넘는 행이없는 경우) 조금만 벗어났습니다. 이것은 나에게 완전히 기괴한 것처럼 보입니다. 나는 잘못하고있는 것을 해결할 수 없습니다.

+1

어떤 입력 데이터이며, 결과를 어떻게 예상합니까? – sll

+0

당신은'내부 조인 (JOIN)'을 원하는 반면에, 당신은'모든것에 모든것을 다 합치는''크로스 조인 '을하고 있습니다. 여러분이'WHERE' 절을 통해'INNER JOIN'을 만드는 것에 감사 드린다. 그러나 도움이되는지 확인하기 위해 다시 작성하십시오. 또한 GROUP BY 절을 사용하지 않고 쿼리를 실행하여 어떤 데이터를 얻었는지 확인하고 쿼리가 잘못 될 가능성이있는 곳을 확인하십시오. – briantyler

답변

2

희망 ::

SELECT 
customers.state, SUM(orders.quantity * items.unitcost) AS 'value of orders' 
FROM 
customers 
inner join orders on (customers.custID = orders.custID) 
inner join items on (orders.itemID = items.itemID), 
GROUP BY customers.state 
LIMIT 0 , 50 
+0

슬프게도 같은 오류가 발생했습니다 ... 데이터에 문제가있을 수 있습니다. – user1002973

+0

@what는 오류 ??? –