添加列的值并在新 table 中显示添加的结果
Add values of a column and display added result in new table
The table with the data that I have
在上面的 table 中,我有以下列:weekNumber、weeklyHours、points_Rewarded。
有四名员工:a,b,c,d
我有第 1 周、第 2 周、第 3 周等的值(我还可以有更多周的数据,例如第 4 周、第 5 周等)
我想编写一个查询,以便在通过查询后得到 weeklyHours 和 points_Rewarded 的总和每个 名员工在一个新 table 中。
查询应该给我的那种table在这里the desired table that I want after passing the query
请帮我查询。
提前致谢。
您可以使用 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
尝试使用以下查询。
SELECT EmployeeName
,SUM (weeklyHours)Total_weekly_hours
,SUM (pointsrewarded) TotalPoints
FROM YourTable
Group By EmployeeName
这是一个简单的GROUP BY
。您希望按姓名对员工进行分组,因此请在 GROUP BY
语句中指定员工姓名。然后 select 您希望如何对其他列进行分组。在这种情况下,您想 SUM
他们:
SELECT employeename,
SUM(weeklyhours) as total_weekly_hours,
SUM(points_rewarded) as total_points
GROUP BY employeename
请注意,您还可以使用 AVG
或 MIN
或 MAX
代替 SUM
,具体取决于您要查找的内容。 AS
子句指定要在输出中调用特定列的内容。
The table with the data that I have
在上面的 table 中,我有以下列:weekNumber、weeklyHours、points_Rewarded。
有四名员工:a,b,c,d
我有第 1 周、第 2 周、第 3 周等的值(我还可以有更多周的数据,例如第 4 周、第 5 周等)
我想编写一个查询,以便在通过查询后得到 weeklyHours 和 points_Rewarded 的总和每个 名员工在一个新 table 中。 查询应该给我的那种table在这里the desired table that I want after passing the query
请帮我查询。
提前致谢。
您可以使用 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
尝试使用以下查询。
SELECT EmployeeName
,SUM (weeklyHours)Total_weekly_hours
,SUM (pointsrewarded) TotalPoints
FROM YourTable
Group By EmployeeName
这是一个简单的GROUP BY
。您希望按姓名对员工进行分组,因此请在 GROUP BY
语句中指定员工姓名。然后 select 您希望如何对其他列进行分组。在这种情况下,您想 SUM
他们:
SELECT employeename,
SUM(weeklyhours) as total_weekly_hours,
SUM(points_rewarded) as total_points
GROUP BY employeename
请注意,您还可以使用 AVG
或 MIN
或 MAX
代替 SUM
,具体取决于您要查找的内容。 AS
子句指定要在输出中调用特定列的内容。