我有这样俩个表
表a.dbf
年月 I J K 机器号
20051201 12 4 3 jq1
20051201 13 5 3 jq2
20051201 13 6 3 jq2
等等表b.dbf
I J K 含碱量
1 1 1 0.0200
2 1 1 0.3022
3 1 1 0.4022
. . . .
. . . .
. . . .
12 4 3 0.3244
13 4 3 0.4522
. . . .
13 5 3 0.2564我想在a表中一行一行的读取表中I j k 的值 ,然后和b表中的 I J K 的值进行比较
如果三个字段的值分别相等,读取b表中含碱量的值,生成这样的一个表( 按机器号排序)机器号 I J K 含碱量
jq1 12 4 3 0.3244
jq2 13 5 3 0.2564
我应怎样读取这俩个表,才能生成最后的那个表
表a.dbf
年月 I J K 机器号
20051201 12 4 3 jq1
20051201 13 5 3 jq2
20051201 13 6 3 jq2
等等表b.dbf
I J K 含碱量
1 1 1 0.0200
2 1 1 0.3022
3 1 1 0.4022
. . . .
. . . .
. . . .
12 4 3 0.3244
13 4 3 0.4522
. . . .
13 5 3 0.2564我想在a表中一行一行的读取表中I j k 的值 ,然后和b表中的 I J K 的值进行比较
如果三个字段的值分别相等,读取b表中含碱量的值,生成这样的一个表( 按机器号排序)机器号 I J K 含碱量
jq1 12 4 3 0.3244
jq2 13 5 3 0.2564
我应怎样读取这俩个表,才能生成最后的那个表
解决方案 »
- SysListView32类SysListView32的内容如何取出?
- Delphi2009 VCL源代码中大量出现的新的宏定义编译CLR,有什么新的意图或用途呢?
- 关于topgrid下拉筐属性的cell,如何动态导入数据???
- dbgrid控件如何能在左边显示行号?
- 高级字符串问题
- 关于Delphi7调用Web Service的问题?
- 如何设置aboutbox中各参数的值?
- 关于TQUERY的问题
- delphi+access
- @@@@@@@@@@@@@@@@@@to zswang(伤心伴水)师傅在吗@@@@@@@@@@@@@@@@@
- 为什么我用了两次ADOQUERY的EDIT方法后,保存数据会出错????
- sql问题。
FROM a
INNER JOIN B ON (a.i = b.i) AND (a.j = b.j) AND (a.k = b.k)
adoquery3.SQL.Clear;
adoquery3.ConnectionString:=srcstr;//这是我的连接串
adoquery3.SQL.Add('select * from '+'a.dbf');
adoquery3.Open;
这样在表格里显示表的所有内容但把 你的select写在里面就出错了啊,为什么啊
那要起个别名 SELECT a.机器号, a.i, a.j, a.k, b.含碱量
FROM a.dbf a
INNER JOIN b.dbf B ON (a.i = b.i) AND (a.j = b.j) AND (a.k = b.k)
srcstr:=Form1.GetLinkSrc(strpath);//getlinkstrc()是个函数 就是连接表的驱动(老师给的没有问题的) adoquery3.close;
adoquery3.SQL.Clear;
adoquery3.ConnectionString:=srcstr
adoquery3.SQL.Add('a.机器号, a.i, a.j, a.k, b.含碱量');
adoquery3.SQL.Add( 'FROM a.dbf a');
adoquery3.SQL.Add('INNER JOIN b.dbf B ON (a.i = b.i) AND (a.j = b.j) AND (a.k = b.k)' ); adoquery1.Open;
这样改过没有错误出现了
但怎么不出查询结果啊
是不是与我的 连接表有关啊,象我那样好象只连接一个表啊,俩个表在一个目录下的我刚刚学习数据库2天 真是麻烦 您了啊 没有错误了 但不显示结果啊
刚刚写错了啊
是这样
strpath:='d:\a.DBF';
FROM a
INNER JOIN B ON (a.i = b.i) AND (a.j = b.j) AND (a.k = b.k)
into 新表
你要的是生成一个新表吧? 不知有没写错,嘿嘿~
你的select 好像没看到哇?
adoquery3.SQL.Add('select a.机器号, a.i, a.j, a.k, b.含碱量');哦 只要把结果显示到stringgrid中就可以了
adoquery3.SQL.Add('a.机器号, a.i, a.j, a.k, b.含碱量');
adoquery3.SQL.Add( 'FROM a.dbf a');
adoquery3.SQL.Add('INNER JOIN b.dbf B ON (a.i = b.i) AND (a.j = b.j) AND (a.k = b.k)' );
这样写进去是不是错了啊不显示查询结果
left jion应该可以
select a.JQH,a.I,a.J,a.K,b.HJL
from a left join b
on a.I=b.I and a.J=b.J and a.K=b.k
楼主可以试试
再sqlserver中调试
我建的表
a :jqh是主键
b :I,J,K是联合主键
我给你看看我写的代码
我给俩个表 和那俩个表一样可能字段名不一样 但都有I J K 的(因为那俩个表我还没有建完呢?),先用老师给的表测试!!
谢谢你啊 今天下午就要交了啊
谢谢了
我只能在dbgrid 中显示 我应如何在stringgrid 中 显示
不过还是给分了啊
忙了这样久