2012-03-21 2 views
0

인보이스 발행 할 작업이있는 테이블이 있습니다. 각 행에는 'value'와 'group'의 두 열이 있습니다. 이MySQL 합계 그룹화 문제

ID Value Group 
1 2000.00 1 
2 2000.00 1 
3 1000.00 0 
4 1000.00 0 

처럼 내가 뭘해야 1 행과 2 행의 값을 결합 (그들은 같은 그룹 번호를 가지고 있기 때문에), 다음 행 3 (그래서 함께 그룹화하지 않음) 정상적으로 4를 반환 할 수 있습니다 :

4000 //Rows 1 and 2 combined 
1000 //Row 3 returned as whole value 
1000 //Row 4 returned as whole value 

나는 쿼리에서 GROUP BY을 사용하려고, 그래서 뭔가

SELECT SUM(Value) AS totalValue FROM table GROUP BY Group 

처럼 그러나이

을 반환
4000 
2000 //Row 3 and 4 combined 

행 3과 4가 같은 그룹 번호를 공유하기 때문에 행 3과 4가 결합됩니다.

내 문제는 그룹화를 원하지 않는다는 것입니다. 나는 그들이 0의 가치를 지니고 있기 때문에 그들이 개별적으로 돌아 오기를 바란다. 이 일을 할 수있는 방법이 있습니까?

답변

2
SELECT Group AS Unique_ID, SUM(Value) AS totalValue FROM table WHERE Group>0 GROUP BY Group 
UNION 
SELECT id AS Unique_ID, Value As totalValue FROM table WHERE Group=0 
+0

안녕하세요, 아지즈. 빠른 답장을 보내 주셔서 감사합니다. 불행하게도 이것은'4000 1000 1000' 대신에'4000 1000'만을 반환합니다. 왜 이런거야? –

+0

각 행을 고유하게 만들 수있는 다른 열을 선택해야하기 때문입니다 ... 쿼리를 업데이트했습니다. – Aziz

+0

그래, 나도 알아 냈어! 도와 주셔서 고맙습니다. Aziz :-) –