作者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/cn.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