回 帖 发 新 帖 刷新版面

主题:两个表的组合问题

我有表A1与A2,A1字段:帐号,欠款;A2字段:帐号,余额。
A1中有10个记录,A2中有5个记录,怎样把A2中的5个记录中的余额按照相同帐号添加到A1中?

回复列表 (共10个回复)

沙发

set safety off
close all
select a.*,b.余额 from A1.dbf a left join A2.dbf b ;
 on allt(a.帐号)==allt(b.帐号) into table A3.dbf

close all
use A3.dbf
copy to A1.dbf

close all
erase A3.dbf

板凳

select A1.*,A2.余额 from A1 left join A2 on A2.帐号=A1.帐号
use in A1
copy to A1

3 楼

谢谢两位老师!
A1表到加上字段“余额”,但“余额”都是空值。A2表的余额有数值呀?

4 楼

怎样把A2中的5个记录中的余额按照相同帐号添加到A1中?

是更行 A1 字段?
还是
在 A1 中添加新纪录啊?

5 楼

更新记录用
UPDATE a1 SET a1.字段名= a2.字段表达式 FROM a2   WHERE 条件=.T.

添加新纪录用
INSERT INTO a1 [(字段名1 [, 字段名2, ...])]
   SELECT 查询语句 ...

6 楼

SELECT tbluser.yhzh as 用户帐号 ,tbluser.yhmc as 用户名称,ssn as 所属年,csds as 初始读数,sbzs as 水表止数,ysl as 用水量,SUM(yjsf) as 欠费总额 FROM tbluser,tblsblr WHERE jfyz=.f. AND ;
UPPER(tbluser.yhzh)=UPPER(tblsblr.yhzh) AND ;
 ALLTRIM(tbluser.ysxz)==ALLTRIM(thisform.combo1.value ) AND ;
 SUBSTR(tblsblr.id,2,4)=ALLTRIM(STR(thisform.spinner1.Value )) AND ALLTRIM(tblsblr.ssy)=ALLTRIM(thisform.text8.Value) ;
 GROUP BY tbluser.yhzh,yhmc,ssn,csds,sbzs,ysl INTO CURSOR curqfzb
我的想法是在临时表curqfzb中加一个余额字段,并在想同帐号记录后面余额添上数据。
 SELECT curqfzb.* ,tbluserye.ye FROM curqfzb LEFT OUTER JOIN tbluserye ON tbluserye.yhzh=curqfzb.用户帐号 
这样写余额字段添上了,但数据没有添上。

7 楼

SELECT curqfzb.* ,00000.00+tbluserye.ye 余额 FROM curqfzb LEFT OUTER JOIN tbluserye ON tbluserye.yhzh=curqfzb.用户帐号 
这样写余额字段添上了,但数据没有添上。

8 楼

SELECT A.* ,00000.00+B.ye 余额 FROM curqfzb A LEFT OUTER JOIN tbluserye B ON B.yhzh=A.用户帐号 

9 楼

再一次谢谢CBL518大师!
用你的代码生成表是:
用户帐号  用户名称  年  读数  止数  用水量  欠总额  余额
JM01      赵一     2009  1     10    9       18.00   .NULL
JM02      赵二     2009  0      5    5       10.00   .NULL
JM03      赵三     2009  0     8     8       16.00   .NULL
余额还是空,tbluserye表是:
用户帐号  余额
JM01      10.00
JM03       5.00
我的意思是在JM01余额中添入10,在JM03余额中添入5,JM02的余额就是0.

10 楼

可以了
SELECT A.* ,00000.00+B.ye 余额 FROM curqfzb A LEFT OUTER JOIN tbluserye B ON allt(B.yhzh)=allt(A.用户帐号 )

我来回复

您尚未登录,请登录后再回复。点此登录或注册