我想查询一张表A的部分字段,具体字段名为另一张表B中某一记录X字段的值,具体又是通过表B中这一记录Y字段的值来决定,如何实现??
表A的结构图如下:
code    char
name    char
vag      char
...表B的内记录如下:
X       Y
——————
code    代码
name    名称
vag     年纪

现在的条件是知道了‘代码’,‘名称’,如何查询表A,使得其只显示字段code,name?

解决方案 »

  1.   

    --SQL Server
    select a.code,a.name
    from A a
    left join B b on a.code=b.X
    where b.Y=...
      

  2.   

    with Adoquery1 do
    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;搞定!