用嵌套的SQL语句吧,要不就只有建临时表了

解决方案 »

  1.   

    你可以将查询的结果存入一个中间表(可以只记录结果中的各条记录的唯一标识),然后对中间表进行查询
    如果不想用中间表,可以用Locate等一系列数据集的操作进行查询,具体的可以查一些资料。
      

  2.   

    把原来查询的语句副给一个字符串,以后在查在调整该字符串;
    如:str:=select * from 表
    第一次query.sql.add(str);
    str:=str+ 'where a=100'
    query.sql.add(str);
      

  3.   

    I am try it
    thank you
      

  4.   

    1.可以把两个条件连接起来查询
    2。用子查询
    3。用历史表 select * from table into #temtable
      

  5.   

    1.最简单的方法就是过滤了,设置Query的Filter
    2.象楼上说的,把原来的SQL语句赋给一个字符串
    第一次
    lsql := 'Select * From yourtable Wherer ...';
    Query1.SQL.Add(lsql);
    第二次
    lsql := 'Select * From (' + lsql + ') Where ...';
    Query1.SQL.Add(lsql); 
    3.临时表也是个方法,但系统临时表#table估计不行,这类临时表系统会自动释放,除非你在同一个事务里完成
      

  6.   

    1.最简单的方法就是过滤了,设置Query的Filter
    2.象楼上说的,把原来的SQL语句赋给一个字符串
    第一次
    lsql := 'Select * From yourtable Wherer ...';
    Query1.SQL.Add(lsql);
    第二次
    lsql := 'Select * From (' + lsql + ') Where ...';
    Query1.SQL.Add(lsql); 
    3.临时表也是个方法,但系统临时表#table估计不行,这类临时表系统会自动释放,除非你在同一个事务里完成
      

  7.   

    如果对速度要求不高,使用filter吧.
      

  8.   

    select * from a in (=)(select * from b)
      

  9.   

    为什么我写的:select * from ( select * from Table ) 
    在 delphi 自带工具 dbexplorer 里可以运行,而在 query.sql.text 里却报错:invaild.....?????
      

  10.   

    如果表很大,要做多次查询,那得建多少临时表啊?
    我还是想用嵌套的 select 来解决?
      

  11.   

    我还是想用嵌套的 select 来解决!
      

  12.   

    不行:
     select * from (select * from 表)
    在ms sql server 中出错!哪有这种写法啊
      

  13.   

    AnsiString sql='select * from table1';
    qry.sql.add(sql);
    qyr.sql.add('select * from table1 where a=100');
    这也不是二次查询吧!其实也只是一个sql 后面加了条件而已.
    qry.sql.add(sql);这句简直是脱裤子放屁!
    试了试临时表,ok!