2017-09-20 31 views
0

表數據之前:如何:使用SQL Server 2014中的同一表中的sum列更新列?

----------------------- 
|ID |WORK|VALUE|TOTAL| 
----------------------- 
|ID1|WRITE |10 | | 
|ID1|TYPE |5 | | 
|ID2|READ |25 | | 
|ID2|SCAN |30 | | 
|ID3|PRINT |15 | | 
|ID4|SETTING|20 | | 
|ID5|REPAIR |5 | | 
|ID5|MAINTE |25 | | 
|ID5|MONITOR|20 | | 

總是從相同的id

ID1  10+5 
ID2  25+30 
ID3  15 
ID4  20 
ID5  50 

總和值現在我用插入方法與創建表DATA2(ID,TOTAL)

INSERT INTO DATA2(DATA2.ID, DATA2.TOTAL) 
    SELECT DATA.ID, SUM (DATA.VALUE) AS TOTAL 
    FROM DATA 
    GROUP BY DATA.ID 

然後我做SELECT JOIN FROM DATA2 AND DATA

表數據後

----------------------- 
|ID |WORK|VALUE|TOTAL| 
----------------------- 
|ID1|WRITE |10 |15 | 
|ID1|TYPE |5 |15 | 
|ID2|READ |25 |55 | 
|ID2|SCAN |30 |55 | 
|ID3|PRINT |15 |15 | 
|ID4|SETTING|20 |20 | 
|ID5|REPAIR |5 |50 | 
|ID5|MAINTE |25 |50 | 
|ID5|MONITOR|20 |50 | 
+0

你表數據後需要作爲輸出 – TheGameiswar

+0

嘗試接受任何回答,如果他們幫助你 – TheGameiswar

回答

0

要更新的總價值表,你需要有列..

alter table tblname 
add total int 

如果這不是一次性的做法,我建議建立像一個視圖下方

create view somename 
as 
    select id,work,value, 
    sum(value) over (partition by id) as total 
    from tabel 

,如果你想更新表作爲一次鍛鍊; Tibial

;with cte 
as 
(select id,work,value, 
sum(value) over (partition by id) as total1 
from tablename 
) 
update t 
set t.total=c.total1 
from cte c 
join tablename t 
on t.id=c.id 
+0

親愛@thegameiswar,謝謝它的成功:) –

0

更新總數的另一種方法。

UPDATE T1 
SET T1.TOTAL=T2.TOTAL 
FROM YOUT_TABLE T1 
JOIN (
SELECT ID,SUM(VALUE) AS TOTAL 
FROM YOUR_TABLE 
GROUP BY ID 
) T2 ON T1.ID=T2.ID 

DEMO

+0

親愛@Shiju沙基它的工作,謝謝 –

相關問題