作者renmax (竹科學友哥)
看板Database
標題[SQL ] insert TB1 to TB2的問題
時間Wed Apr 6 17:34:01 2016
資料庫名稱:Microsoft SQL Server Management Studio
資料庫版本:11.0.2100.60
內容/問題描述:
各位版友好
有兩個Table1和Table2如下:
Table1 Table2
id daily_points id SUM_point
---------------------- --------------------
1 55 1
2 66 2
3 77 3
1 11 4
2 22 5
3 33 6
現在想把Table1相同id的daily_points都相加起來
接著丟到Table2的SUM_point (兩個Table的id是相同的)
因此得到的結果如下:
Table2
id SUM_point
--------------------
1 66
2 88
3 110
4 0
5 0
6 0
請問語法該怎麼下會比較恰當呢?
麻煩了,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.21.87
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1459935243.A.C23.html
1F:→ moyasi: 你到底是要insert還是要update啊 04/06 17:54
2F:→ yuan0304: update的話~試試~下面的 04/07 00:18
3F:→ yuan0304: UPDATE table2 o INNER JOIN( 04/07 00:19
4F:→ yuan0304: SELECT id, SUM(daily_points) 'sumu' FROM table1 04/07 00:19
5F:→ yuan0304: GROUP BY id) i ON o.id = i.id 04/07 00:19
6F:→ yuan0304: SET o.SUM_point = IsNull(i.sumu,0) 04/07 00:20
抱歉 應該是insert才對
Table2內無任何資料,發文時腦袋沒想清楚= ="
期望結果:
Table2
id SUM_point
--------------------
1 66
2 88
3 110
※ 編輯: renmax (61.216.21.87), 04/07/2016 09:59:43
7F:→ winall: 這有很多問題都必須先假設 04/07 11:51
8F:→ winall: 1. 是否有ID表 04/07 11:51
9F:→ winall: 2. Table2是否需先delete再Insert? 04/07 11:51
10F:→ winall: 沒有ID表怎麼知道Table2的ID是1~6? 04/07 11:52
11F:→ renmax: Table1有ID Table2全空 無須delete 直接insert 04/07 11:53
12F:→ winall: 我當然知道Table1有ID,問題是有些ID在Table2要補0 04/07 12:02
13F:→ winall: 直接Insert所以Table2的表只有一次性? 04/07 12:03
14F:→ renmax: 是的 只有一次性 Table1有的ID再騰到Table2就好 04/07 12:08
15F:→ winall: 哀,你還是不懂我的意思,Table1沒有ID 4~6,你怎麼在一個空 04/07 12:18
16F:→ winall: 的Table2 ID知道 4~6 要補0,否則你舉的例子就有問題 04/07 12:19
17F:→ winall: 不管ID 4~6的問題 04/07 12:31
18F:→ winall: insert into Table2 04/07 12:31
19F:→ winall: select id,sum(daily_points) 04/07 12:31
20F:→ winall: from Table1 04/07 12:31
21F:→ winall: group by id 04/07 12:32
22F:→ renmax: 抱歉@@" 但已用您上面的方法解決了 謝謝<(_ _)> 04/07 16:08