我想查询一张表A的部分字段,具体字段名为另一张表B中某一记录X字段的值,具体又是通过表B中这一记录Y字段的值来决定,如何实现??
表A的结构图如下:
code char
name char
vag char
...表B的内记录如下:
X Y
——————
code 代码
name 名称
vag 年纪
现在的条件是知道了‘代码’,‘名称’,如何查询表A,使得其只显示字段code,name?
表A的结构图如下:
code char
name char
vag char
...表B的内记录如下:
X Y
——————
code 代码
name 名称
vag 年纪
现在的条件是知道了‘代码’,‘名称’,如何查询表A,使得其只显示字段code,name?
select a.code,a.name
from A a
left join B b on a.code=b.X
where b.Y=...
begin
Close;
SQL.Clear;
SQL.Add('select X from B where Y in (''代码'',''名称'')');//这个SQL语句动态组合。
Open;
end;
StrField:='';
while not AdoQuery1.Eof do
begin
StrField:=StrField+AdoQuery1.FieldByName('X').AsString+',';
AdoQuery1.Next;
end;
if StrField<>'' then
begin
StrField:=Copy(StrField,1,Length(StrField)-1);
with AdoQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('select '+StrField+' from A where ...');
Open;
end;
end;搞定!