2017-04-26 52 views
2

導入的Excel表到SQL server.i都選擇了一個表。在這個表格中有很多行數值。在這行裏單身員工多次出現在這張表中。我希望這個COlumn中的單個Employee應該具有來自Repeated列的所有值。我將顯示示例數據以供參考。刪除重複的coumn只有一列具有從sql查詢中重複列中的所有可用值的所有值

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 

我的表看起來像後,選擇表我的結果應該是像

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。

回答

5
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 
+2

您可能需要使用'SUM()的''而不是MAX()',萬一非零值可能是負+1 –

+0

@TimBiegeleisen謝謝主席先生 – sripriya

+0

@Chanukya一個更幫幫我。我想計算總價值單獨的員工總數喜歡jeni共計11和Priya 23.我更新我的問題請給一些想法如何獲得價值 – sripriya

3

你正在尋找的東西是一組通過。

爲了得到你要找的結果,我只是把你所描述的表做了一個小組,並對整數值做了一個總結。

select name, sum(E1),sum(E2),sum(E3),sum(E4),sum(E5) from Test Group by name 
0
;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 
相關問題