2016-09-06 2 views
1

The table with the data that I have는 위의 표에 새로운 테이블

첨가 결과 열 값을 추가 표시는 I 열을 갖는다. ,

나는 휴일이, week2, week3에 대한 값을

D, A, B, C 등 (I는 또한 week4, week5 등 많은 주에 대한 데이터를 가질 수 있습니다

네 명의 직원이있다 등)

내가 쿼리를 통과 한 후 나는 weeklyHours의 총을 얻을 새로운 테이블의 각 직원에 대한을 points_Rewarded되도록 쿼리를 작성하려고합니다. 쿼리에서 제공해야하는 테이블 종류는 여기 the desired table that I want after passing the query

제발 나를 도와주세요.

미리 감사드립니다.

답변

2

GROUP BY을 사용하면 집계 값을 얻을 수 있습니다. 귀하의 경우에는 SUM을 찾고 있습니다.

DECLARE @tbl TABLE(EmployeeID INT, EmployeeName VARCHAR(100),WeekNumber VARCHAR(100),WeeklyHours INT,pointsRewarded INT); 
INSERT INTO @tbl VALUES 
(1,'a','week1',10,20) 
,(2,'b','week1',1,20) 
,(3,'c','week1',20,20) 
,(4,'d','week1',30,30) 
,(1,'a','week2',11,10) 
,(2,'b','week2',44,10) 
,(3,'c','week2',5,10) 
,(4,'d','week2',6,40) 
,(1,'a','week3',7,10) 
,(2,'b','week3',88,10) 
,(3,'c','week3',9,10) 
,(4,'d','week3',0,10); 

SELECT tbl.EmployeeID 
     ,tbl.EmployeeName 
     ,SUM(tbl.WeeklyHours) AS Total_Weekly_Hours 
     ,SUM(pointsRewarded) AS Total_Points 
FROM @tbl AS tbl 
GROUP BY tbl.EmployeeID, tbl.EmployeeName 
+0

감사 lot.forgot을 언급, 나는 결과 –

+0

@ShivamSharma에서 EMPLOYEE_ID 열을 삽입 할 경우 내가 EMPLOYEE_ID 열 그럴만을 가지고, 내 업데이 트 – Shnugo

+0

감사 톤을 참조하십시오. 당신은 내 시간을 많이 절약했습니다 .. –

0

은 아래의 쿼리를 시도하십시오.

 SELECT EmployeeName 
      ,SUM (weeklyHours)Total_weekly_hours 
      ,SUM (pointsrewarded) TotalPoints 
     FROM YourTable 
    Group By EmployeeName 
0

이것은 간단한 GROUP BY입니다. 직원을 이름별로 그룹화하려면 GROUP BY 문에 employeename을 지정하십시오. 그런 다음 다른 열을 그룹화하는 방법을 선택하십시오. 이 경우, 당신이 그들을 SUM 할 : 당신은 또한 당신이 찾을하려는 작업에 따라 SUM의 장소에 AVG 또는 MIN 또는 MAX를 사용할 수

SELECT employeename, 
SUM(weeklyhours) as total_weekly_hours, 
SUM(points_rewarded) as total_points 
GROUP BY employeename 

참고. AS 절은 출력의 특정 열을 호출 할 항목을 지정합니다.

여기 테스트 : http://sqlfiddle.com/#!9/2a96f

+0

고맙습니다. –