如题:
    有两个adoquery:adoquery1,adoquery2
    adoquery1中存在一些从数据库表中检索出来的数据
下面是我想得到的:
    让adoquery2从adoquery1检索出来的数据中再检索适合的数据,而不是
    再写条件从数据库中查询;
最好给个例子 谢谢了

解决方案 »

  1.   

    为什么要用两个ADOQuery呢?
    个人觉得一个就可以了
    比如:
    ADOQuery1的功能是:select name from table where Age>20;
    ADOQuery2的功能是:从ADOQuery1中继续查找性别是“男”的记录。
    那么ADOQuery2的实现就是:
    select * from table where name in(select name from table where Age>20) and sex='男';
    楼主明白了吗?
      

  2.   

    select A.* from (select * from temptable where 收入=450) A where 日期='2002-7-4'
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~应该只能是select中嵌套select了....
      

  3.   

    另一种方法,如果楼主只是想实现简单的功能的话,不妨在ADOQuery中再用上Filter,例如:ADOQuery1.Filter:='性别='+QuotedStr('男');
    ADOQuery1.Filtered:=True;这样,就可以显示结果集中,性别为“男”的行。如果要显示所有行,则:
    ADOQuery1.Filtered:=False;
      

  4.   

    窗体上再放一个Datasource组件,设置如下:
    ========================================
    .Name:= Datasource1;
    。DataSet:= ADOQuery1;
    ========================================ADOQuery2.Datasource:= Datasource1;
    ADOQuery2.Filter:= '你的条件';
    ADOQuery2.Filtered:= true;
      

  5.   

    到现在为止,我还没有发现Delphi下有可以支持SQL的数据集对象或第三方控件,只能用Filter来进行过滤。ADO的Filter确实也很强了,速 度很快。听说PB中本地数据集也可以支持SQL,怪不得很多人说在数据库开发上PB更强。我想这也是其中的一个原因吧。在Delphi中也可以自己写新控件来实现该功能。就等哪个高手来实现了,或者有第三方的控件厂商来做这件事。
      

  6.   

    我觉得你这个问题两种方式可以解决!  1、合并adoquery1,adoquery2两个查询语句的查询条件
      2、将adoquery1查询生成临时表
      

  7.   

    谢谢老大们的讲解
    我知道的用filter可以
    但是filter的怎么再记录有空格的条件下记录呢
    还有
    我也可以用一个adoquery来查询但是就我所写的来说,是再查询出来的东西里面再
    过滤,所以不知道怎么用.
    就想知道,再一个adoquery里面怎么再准确的过滤,我试了filter但是有空格的时候是不行的:
    如:filter:='aa like %'+变量+'%'
    如果:变量:='bb bbaa'这样的记录就不行