2016-09-06 3 views
1

The table with the data that I haveは、上記の表では、新しいテーブル

に加算結果を列の値を追加し、表示する私が列を持っています。

4人の従業員があります、B、C、D

私はweek1、week2、week3の値を持っている、というように(私は、このような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列のtoo.Whatを持って、私の更新に – 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

おかげさまで... –

関連する問題