2014-12-06 1 views
1

나는 다음과 같은 테이블이 :다른 열을 기반으로 레코드 합계를 얻는 방법은 무엇입니까?

JobCode | Designation | SalaryWithIncrement 
---------------------------------------------- 
JC001 | IT | 150,000 
JC001 | IT | 155,000 
JC002 | Sales | 100,000 
JC003 | HR | 200,000 
JC003 | HR | 210,000 
JC003 | HR | 220,000 

필수 출력 : 아래

JobCode | Designation | SalaryWithIncrement 
------------------------------------------------ 
JC001 | IT   | 305,000 
JC002 | Sales  | 100,000 
JC003 | HR   | 630,000 

내가 사용하는 코드입니다,하지만 난

SELECT JobCode, designation, salaryWithIncrement 
FROM table1 
group by (JobCode) 

모든 그룹화 한 후 총 합계를 얻을하지 않습니다 도움을 주시면 감사하겠습니다.

+2

어떻게하면 150 + 155 = 205가됩니까? 나는 당신이 오타를 만든 것 같아요. – AdamMc331

+1

Thanks @ McAdam331. 그것을 고쳤다 – h4kl0rd

+0

고마워. 오타가 있거나 문제를 오해 한 적이 있다면 너무 확신 할 수 없습니다. – AdamMc331

답변

2

당신은 집계 sum 기능을 사용할 수 있습니다 : 당신이 그런 요구가있을 때 대부분의 경우

SELECT JobCode, designation, SUM(salaryWithIncrement) 
FROM  table1 
GROUP BY JobCode, designation 
1

을 youu 경우 JobCode에서 그룹 필드는 기록을 원하는에 따라 SQL 집계 함수와 GROUPBY를 사용하여 구현 및 designation 는 현재 MSDN

SELECT JobCode,designation,SUM(salaryWithIncrement) 
FROM Job GROUP BY JobCode,designation 
다음

샘플 코드를 노력에 의해 그룹에 대해 배울 수 있습니다 SQL Fiddle

1

이렇게하려면 group by 문에 sum 함수를 사용해야합니다.

select jobCode, designation, sum(salaryWithInc) from Job group by jobCode; 

작업 예제를 보려면이 link을 확인하십시오.

제 생각에는 데이터 중복 (jobCodedesignation)을 피하기 위해 테이블을 다르게 구조 조정해야합니다. 이를 위해 jobCodedesignationsalaryWithInc이있는 두 개의 테이블을 가질 수 있습니다. 이 link가 작동 예를 볼 수

select J.jobCode, J.designation, sum(S.salaryWithInc) from Job as J join Salary as S on J.jobId=S.job group by (J.jobId); 

확인 :이 경우

create table Job (jobId int auto_increment, jobCode varchar(5), designation varchar(25), primary key (jobId)); 
create table Salary (job int, salaryWithInc decimal(5,2), foreign key (job) references Job (jobId)); 
insert into Job (jobCode, designation) values ("JC001", "IT"),("JC002", "Sales"), ("JC003", "HR"); 
insert into Salary values (1,150.00), (1,155.00),(2,100.00),(3,200.00),(3,210.00),(3,220.00); 

, 당신은 원하는 결과를 얻기 위해이 쿼리를 사용합니다.

희망이 있습니다. 유용합니다.

관련 문제