错了应该是 update A set A.bal=B.sumbal where A.acnt_num=B.acnt_num
有错了,我晕, update A set A.bal=B.sumbal where A.acnt_num=B.num
楼上还是错的。Update A Set A.bal= B.sumbal From A Inner Join B On A.acnt_num=B.num
或者Update A Set A.bal= B.sumbal From A,B Where A.acnt_num=B.num
我试了,都不行诶.... 说是语法错误... update里面能直接用from么
--建立测试环境 Create table A (acnt_num Int, bal Varchar(10))Create table B (num Int, sumbal Varchar(10)) GO --插入数据 Insert A Values(1,Null) Insert A Values(2,Null) Insert A Values(3,Null)Insert B Values(1,'AA') Insert B Values(2,'BB') Insert B Values(3,'CC') GO --测试 Select * from A Update A Set A.bal= B.sumbal From A Inner Join B On A.acnt_num=B.num Select * from A --删除测试环境 Drop table A,B --结果 /* --Update A表前 acnt_num bal 1 NULL 2 NULL 3 NULL--Update A表后 acnt_num bal 1 AA 2 BB 3 CC */
--建立测试环境 Create table A (acnt_num Int, bal Varchar(10))Create table B (num Int, sumbal Varchar(10)) GO --插入数据 Insert A Values(1,Null) Insert A Values(2,Null) Insert A Values(3,Null)Insert B Values(1,'AA') Insert B Values(2,'BB') Insert B Values(3,'CC') GO --测试 Select * from A Update A Set A.bal= B.sumbal From A,B Where A.acnt_num=B.num Select * from A --删除测试环境 Drop table A,B --结果 /* --Update A表前 acnt_num bal 1 NULL 2 NULL 3 NULL--Update A表后 acnt_num bal 1 AA 2 BB 3 CC */
我的机子还没装C++Builder和数据库,不能调试,要不就帮你调试了!
paoluo(一天到晚游泳的鱼) 和marchily(勇) 非常非常感谢!!问题解决了!!! 用这样的一个语句也行:update A set bal = (select sumbal from B where A.acnt_num =num) where acnt_num in (select num from B) 上面出问题可能是因为informix跟SQLSever还是有不太一样的地方 实在是很感谢!特别是paoluo(一天到晚游泳的鱼),还特意去建表试了结果! ^_^
update A set A.bal=B.sumbal where A.acnt_num=B.acnt_num
update A set A.bal=B.sumbal where A.acnt_num=B.num
说是语法错误...
update里面能直接用from么
Create table A
(acnt_num Int,
bal Varchar(10))Create table B
(num Int,
sumbal Varchar(10))
GO
--插入数据
Insert A Values(1,Null)
Insert A Values(2,Null)
Insert A Values(3,Null)Insert B Values(1,'AA')
Insert B Values(2,'BB')
Insert B Values(3,'CC')
GO
--测试
Select * from A
Update A Set A.bal= B.sumbal From A Inner Join B On A.acnt_num=B.num
Select * from A
--删除测试环境
Drop table A,B
--结果
/*
--Update A表前
acnt_num bal
1 NULL
2 NULL
3 NULL--Update A表后
acnt_num bal
1 AA
2 BB
3 CC
*/
--建立测试环境
Create table A
(acnt_num Int,
bal Varchar(10))Create table B
(num Int,
sumbal Varchar(10))
GO
--插入数据
Insert A Values(1,Null)
Insert A Values(2,Null)
Insert A Values(3,Null)Insert B Values(1,'AA')
Insert B Values(2,'BB')
Insert B Values(3,'CC')
GO
--测试
Select * from A
Update A Set A.bal= B.sumbal From A,B Where A.acnt_num=B.num
Select * from A
--删除测试环境
Drop table A,B
--结果
/*
--Update A表前
acnt_num bal
1 NULL
2 NULL
3 NULL--Update A表后
acnt_num bal
1 AA
2 BB
3 CC
*/
用这样的一个语句也行:update A set bal = (select sumbal from B where A.acnt_num =num)
where acnt_num in (select num from B)
上面出问题可能是因为informix跟SQLSever还是有不太一样的地方
实在是很感谢!特别是paoluo(一天到晚游泳的鱼),还特意去建表试了结果!
^_^