2012-04-18 2 views
0

3 개의 개별 게임 캐릭터에 대한 장비 데이터를 표시하는 모의 데이터베이스를 만들려고합니다. 내 SELECT의 목적을 위해MySQL에서 SUM 함수가 여러 데이터 열을 제거하는 이유

SUM(gear_head.gearScore + gear_chest.gearScore + gear_legs.gearScore + gear_arms.gearScore) AS gearScore 

: 나는 다음과 같은 SQL을 실행할 때 나는 내가 SUM 기능을 추가 할 때 캐릭터의 gearscore를 얻을 수

SELECT customerID, characters.characterID, characterName, headName, chestName, legsName, armsName 
FROM characters 
JOIN character_equipmentv ON characters.characterID = character_equipment.characterID 
JOIN gear_head ON character_equipment.headID = gear_head.headID 
JOIN gear_chest ON character_equipment.chestID = gear_chest.chestID 
JOIN gear_legs ON character_equipment.legsID = gear_legs.legsID 
JOIN gear_arms ON character_equipment.armsID = gear_arms.armsID 
ORDER BY characterID 

그러나 전체 테이블을 당길 수 있어요 명령문을 사용하면 모든 문자에 대해 결합 된 기어 스코어가있는 첫 번째 항목 만 표시됩니다! 이 문제를 어떻게 해결할 수 있습니까?

+0

모든 집계 함수는이 특성을 갖습니다. 그 밖의 무엇을 원하십니까 – diEcho

+0

출력을 어떻게 하시겠습니까? 합계가 각 행에 표시되는 첫 번째 쿼리의 결과? –

+0

각각의 캐릭터의 기어 점수가 각각의 캐릭터 라인에서 정보 테이블을 찾고있었습니다 – jrounsav

답변

1

체크 아웃 SQL Grouping.

오케이 : SUM은 집계 함수이며 GROUP BY 절을 사용해야 다른 열을 기반으로 의미있는 결과를 얻을 수 있습니다.

+0

많은 감사를드립니다! 문제를 해결 한 그룹 – jrounsav

+1

@Cluckles 그 대답을 받아들이 셔도 좋습니다. – fancyPants

0

SUM은 집합 함수이며, 이는 여러 행을 취하여 병합 함을 의미합니다. 당신이 당신의 쿼리의 끝에 GROUP BY characterID를 추가 주어진 characterID의 합을 원하는 경우

귀하의 SQL 모든 characterIDs

당신에게 모든 기어 점수의 합을 알려드립니다.

관련 문제