我设计的表a(id,number)
其中id是主键,number是int型
我想当我输入的数据中,如果出现id相同的,用什么样的sql语言才能把number的数累加,而不用添加相同id的记录了。
其中id是主键,number是int型
我想当我输入的数据中,如果出现id相同的,用什么样的sql语言才能把number的数累加,而不用添加相同id的记录了。
解决方案 »
- oracle数据库导入问题
- oracle dmp文件导入出错 不知道为什么~
- 存储过程里输出输入参数是number 的不能指定小数点位数吗,varchar的也不能指定长度吗?
- 删除表空间的方法
- 请教最为优化的查询语句。
- 寻打一个很有名的数据库设计/查询分析器,它的图标是青蛙,名字好像是英文的青蛙
- 老大帮忙看看jb连接oracle9i的问题?
- 使用VB6程序调用ORACLE数据表时循环时出现错,我很急,高手出力!!!!
- 有没有人做过clob类型变量?
- 更新表的一个问题。急!立马结账!
- 求Oracle表结构设计的问题,高手过来看看!
- 两台oracle服务器A、B都装有oracle数据库,如何A定期去获取B服务器上的一个表的数据?
我想如果where id=xxx,我就想把number累加,现在就不知sql怎么写?
从表b插入表a
update a set number=number+(select sum(number) from b where id=xxx) where id=xxx;直接往表a中更新记录
update a set number=number+输入值 where id=xxx;
还有number是关键字,最好不要用,用的话要加双引
SQL> edit
已写入 file afiedt.buf 1 CREATE OR REPLACE TRIGGER T_TRIG
2 before insert on t
3 for each row
4 declare
5 cnt number;
6 begin
7 delete from t where id=0;
8 select count(id) into cnt from t where id=:new.id;
9 if cnt=1 then
10 update t set num=num+:new.num where id=:new.id;
11 :new.id:=0;
12 end if;
13* end;
SQL> /触发器已创建SQL> select * from t; nihqo
ID NUM
---------- ----------
1 1SQL> insert into t values(1,1);已创建 1 行。SQL> select * from t; nihqo
ID NUM
---------- ----------
1 2
0 1SQL> insert into t values(1,2);已创建 1 行。SQL> select * from t; nihqo
ID NUM
---------- ----------
1 4
0 2SQL> insert into t values(1,3);已创建 1 行。SQL> select * from t; nihqo
ID NUM
---------- ----------
1 7
0 3SQL>