我想从rsABC(2)中选取m>5的记录,我这样写对吗:
SELECT * FROM rsABC(2) WHERE m>5<rsABC(2)是一个recordset的数组元素,是由另一条SQL生成的,不是数据库中的表>

解决方案 »

  1.   

    不对,因为其不是SQL语句,如果要这样做则用全SQL语句:应该这样写
    Select * from (select fieldstring1,fieldstring2,...,fieldnumeric) where fieldnumeric>5
      

  2.   

    比如说rsABC(2)中有两个字段:m,n
    那么是不是可以写成这样呢:
    Select * from (select m,n) where m>5但是,可能当前程序中有很多表中都有字段叫m
    SQL怎么知道我需要的m在rsABC(2)中呢?多谢BTW,我用的是VB6+Access
      

  3.   

    select a.m as M1,b.m as M2 from (select * fron a1 ) as a,( select * from a2 ) as b b where a.id=b.id
      

  4.   

    能不能先写好一个SQL,然后存到recordset中,然后再从这个recordset里select?因为select*from a1很费时间,而且在此之前已经得到结果了,实在不想再select一次
      

  5.   

    可以用临时表.
    select* into Temp from a1
    SELECT * FROM temp WHERE m>5
    不用时可删除TEMP表
      

  6.   

    同意楼上,用临时表,不过楼上应该为#Temp而不是Temp,Temp建立一表,不是一临时表
      

  7.   

    rs.Filter = "m>5"
    看一下MSDN里的“ADO 教程 (VB)”
      

  8.   

    谢谢各位的帮助我用select* into #Temp from a1建立临时表时出现了这个错误:
    实时错误: SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确
      

  9.   

    select *  之间应有空格
      

  10.   

    select *  之间应有空格