如何用SQL语句更新表数据(paradox表) ( 积分: 50 )

  • 主题发起人 主题发起人 freeflying
  • 开始时间 开始时间
F

freeflying

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表,结构如下
表A:
项目代号 字段1 字段2 字段3 地区代号
1 1.5 2.5 01
3 2.0 3.0 01
4 5.0 5.0 01
.
.
.
1 1.5 2.5 02
3 2.0 3.0 02
.
.
表B的结构和表A相同
表B:
项目代号 字段1 字段2 字段3 地区代号
1 01
3 01
4 01
.
.
.
1 02
3 02
.
.
现在想用表A的数据更新表B的数据,如何用SQL语句更新
即表A.字段1=表B.字段1,表A.字段2=表B.字段2,表A.字段3=表B.字段3
 
update 表B set .......where A.项目代号=B.项目代号
 
在sql explorer中使用sql语句同sql数据库中使用的应是一样的吧.
用这个通过了你可以试试(两表name是索引)
update a set grade=(select sum(b.grade+b.grade1) from b where a.name=b.name),
grade1=(select grade1 from b where a.name=b.name)
 
借用贵宝地请教个问题:急!!
代码如下
ADOQuery1.SQL.Clear();
ADOQuery1.Parameters.Clear();
ADOQuery1.SQL.Add('select * from tpsms where tp_regtime=:''');
ADOQuery1.Open();
self.ADOQuery1.Edit();
ADOQuery1.FieldByName('tp_sendflag').value:= '1';
ADOQuery1.post;
self.ADOQuery1.Close;
self.ADOQuery1.Open;

在access数据库里只有一行数据,而数据库自己会产生一行空数据,运行时出现关键字为不允许为空,不让运行下去,并且真正符合条件的第一行数据它不会查询它会自己去查数据库自行产生的那行数据,这要怎么解决?
 
to yunxi126:
你的方法试过了,不行
to lanny_luo
我的两个表没有索引!
用你的方法运行后出现:Invalid use of keyword.
Token:a.db
line Number:1
 
update a
set 字段1=(select b.字段1
from b
where a.项目代号=b.项目代号
and a.地区代号=b.地区代号)
这只是更新一个字段的 其它几个字段是一样的 自己写
 
to bgqy2000:
谢谢您的回复,按您的方法试了,还是提示:
Invalid use of keyword.
Token:a.db
line Number:1
怎么办!!
 
那是你表里没有主键吧?sql应该没问题的 你加个主键试试
 
to bgqy2000:
对,两个表都没主键
该如何加主键?
项目代号和地区代号都有重复值
 
你表设计的不合理啊,一张表怎么可能没有主键呢
 
表不是我设置了,我只是想把数据导入表B
这个问题不用sql就容易解决,但现在我想用
sql试试看。
 

Similar threads

S
回复
0
查看
698
SUNSTONE的Delphi笔记
S
S
回复
0
查看
786
SUNSTONE的Delphi笔记
S
D
回复
0
查看
773
DelphiTeacher的专栏
D
D
回复
0
查看
677
DelphiTeacher的专栏
D
D
回复
0
查看
668
DelphiTeacher的专栏
D
后退
顶部