从sql查询中重复的列中删除所有可用的唯一列的所有重复的coumn

导入的Excel工作表要SQL Server.iselect一个表。 在这个表中有很多的行值。 在这行里单身员工多次来此表。 我希望这个COlumn中的单个Employee应该具有来自Repeated列的所有值。 我将显示示例数据以供参考。

Name E1 E2 E3 E4 E5 Jeni 1 0 0 0 0 Jeni 0 0 2 0 0 Jeni 0 5 0 0 3 Priya 0 3 0 0 0 Priya 0 0 0 0 3 Priya 0 0 7 0 0 Priya 10 0 0 0 0 

我的表看起来像select表后我的结果应该是喜欢的

  Name E1 E2 E3 E4 E5 Total jeni 1 5 2 0 3 11 Priya 10 3 7 0 3 23 

我想要这样。 我希望解释一下清楚。请问怎样才能做到这一点。 请参考BEST TUTORIAL学习SQL很短的时间。谢谢你的提前。 我希望Wil有一些帮助。 我是新的SQL Server。

 CREATE TABLE #Table1 ([Name] varchar(5), [E1] int, [E2] int, [E3] int, [E4] int, [E5] int) ; INSERT INTO #Table1 ([Name], [E1], [E2], [E3], [E4], [E5]) VALUES ('Jeni', 1, 0, 0, 0, 0), ('Jeni', 0, 0, 2, 0, 0), ('Jeni', 0, 5, 0, 0, 3), ('Priya', 0, 3, 0, 0, 0), ('Priya', 0, 0, 0, 0, 3), ('Priya', 0, 0, 7, 0, 0), ('Priya', 10, 0, 0, 0, 0) ; SELECT *,A.E1+A.E2+A.E3+A.E4+A.E5 AS 'TOTAL' FROM ( SELECT NAME, SUM(E1) E1 ,SUM(E2) E2 ,SUM(E3) E3 ,SUM(E4) E4 ,SUM(E5) E5 FROM #TABLE1 GROUP BY NAME)A 

产量

 NAME E1 E2 E3 E4 E5 TOTAL Jeni 1 5 2 0 3 11 Priya 10 3 7 0 3 23 

你正在寻找的是一个Group by。

为了得到你正在寻找的结果,我只是把你所描述的表格做了一个小组,并对整数值做了一个总结。

 select name, sum(E1),sum(E2),sum(E3),sum(E4),sum(E5) from Test Group by name 
 ;With cte(Name,E1,E2,E3,E4,E5) AS ( SELECT 'Jeni' ,1 ,0 , 0, 0, 0 Union all SELECT 'Jeni' ,0 ,0 , 2, 0, 0 Union all SELECT 'Jeni' ,0 ,5 , 0, 0, 3 Union all SELECT 'Priya',0 ,3 , 0, 0, 0 Union all SELECT 'Priya',0 ,0 , 0, 0, 3 Union all SELECT 'Priya',0 ,0 , 7, 0, 0 Union all SELECT 'Priya',10,0 , 0, 0, 0 ) SELECT Name,E1,E2,E3,E4,E5,Total FROM ( SELECT *,Row_number()Over(Partition by Name order by Name)AS Seq From ( SELECT Name,SUM(E1)E1, SUM(E2)E2, SUM(E3)E3, SUM(E4)E4, SUM(E5)E5, SUM(E1+E2+ E3+ E4+E5) AS Total FROM cte Group by Name )Dt )AS Final WHERE Final.Seq=1