有一个form,里面有两个table,要实现表1中的某个字段加到表2的某个字段,根据工号来连接.
要实现表1和表2中相同的工号它的金额的和,再放到表2中.
谢谢
为什么这句执行不了:
update yb1 set yb1.C4 = yb1.C4 + yb2.C2 from yb1,yb2 where yb1.C1=yb2.C1在oracle的sql\plus中也执行不了.谢谢
要实现表1和表2中相同的工号它的金额的和,再放到表2中.
谢谢
为什么这句执行不了:
update yb1 set yb1.C4 = yb1.C4 + yb2.C2 from yb1,yb2 where yb1.C1=yb2.C1在oracle的sql\plus中也执行不了.谢谢
解决方案 »
- 請教TADOQuery方面的問題
- 简单问题:如何把字符串插到memo中光标所停留的位置?
- 打印设置问题,急用,谢谢
- [求助]关于数据库方面的问题!急!~
- 请教,如何动态生成控件!
- locate('SNo',vararrayof([spinedit1.text]),[loPartialKey])出错,能解者另给400
- ******关于MEMO控件类型的值在Quick Report报表中的显示问题?******
- 国庆节大家过的快乐吗?希望大家帮助我,让我也快乐!(高分)
- 弱问题
- BDE API的帮助在哪里?DbiPackTable在哪里找到的?
- 一个小问题:如何让快捷菜无效?高分100·在线,解决就散分
- 报表二次开发问题。。。
使用这句就可以了。
---------- ----------
1 2
2 3
3 1SQL> select* from t1; C1 C2
---------- ----------
1 2
2 3
3 1
4 5SQL> update t1 set c2=c2+ (select c2 from
2 (select t1.c1,t1.c2 from t1,t2 where t1.c1=t2.c1
3 union
4 select c1,0 as c2 from t1 where c1 not in
5 (select c1 from t2)) b
6 where t1.c1=b.c1);4 rows updatedSQL> select * from t1; C1 C2
---------- ----------
1 4
2 6
3 2
4 5SQL> commit;Commit complete
2 (select yb2.c1,yb2.c2 from yb2,yb1 where yb1.c1=yb2.c1
3 union
4 select c1,0 as c2 from yb1 where c1 not in
5 (select c1 from yb2)) b
6 where yb1.c1=yb2.c1);
中间只是嵌套了一个带union的查询,前半部分是公共的,后半部分是yb2中没有的,所以按0加,这样就不会是null了
另一个上的分都给了,不过还有个问题,帮我解决一下,解决完了,再多给你一些你给的语句在sql\plus中可以了,可是在delphi中:
query1.Close;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.Open;
这个执行不了
改成:
query1.ExecSQL;
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这都执行不了
query1.Close;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.Open;
query1.sql.Clear;
query1.sql.add('update yb1 set c4=c4+(select c2 from (select c1c2c3.c1,c1c2c3.c2 from c1c2c3,yb1 where yb1.c1=c1c2c3.c1 union select c1,0 as c2 from yb1 where c1 not in (select c1 from c1c2c3)) b where yb1.c1=b.c1)');
query1.execsql;
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这都执行不了
=======================================这个不是sql语句的问题了,报什么错误??是不是你的SQLPlus开着,里面有未提交的语句把表锁了?
key violation
[oracle][odbc][ora]ora-00600:内部错误代码.自变量:[kcbgcur-9][1][4200318][2][][][][]....
还是query要什么设置?
产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。
解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。
一个报错例子如下:
ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []
你是怎么连接oracle的,改一下连接方式看看
query1.sql.Clear;
query1.sql.add('update yb1 set C4=100 where C1=130339');
query1.ExecSQL;
这个报错是:无效字符
query不是有个属性是databasename,我只设置了这个.
我通常用table,其他的都没有用过
我不是专业的开发员,领导让我做,我以前学过一点而已,很谢谢你
不过query1.Close;
query1.sql.Clear;
query1.sql.add('select ......');
query1.ExecSQL;
能执行.
就是刚才的这个不行
可是在程序里执行时出错,提示:error creatng cursor handle
filter需要什么设置吗?
给你分,谢谢你