在sql2005中没错,到了access中就错了,sql语句是这样的:select top 5 * from t_source 
where classid=2904 and sourcetype='2436' and seq_no not in 
(select top (5*(1-1)) seq_no from t_source where classid=2904 and sourcetype='2436')弄了很久都没搞好,哪位专家能帮我解答下,谢谢了。

解决方案 »

  1.   

    上面报的错误是 这句(5*(1-1))  “select 子句包含一个保留字、拼写错误或者丢失的参数,或标点符号不正确。”
      

  2.   

    (5*(1-1)) 不能这样用,access 的top后的数字,不支持计算
      

  3.   

    ACCESS幫助中說:接在 TOP 後面的值必須是不帶正負號的整數 。
    所以你的子查詢中有關(5*(1-1))要另想辦法 
      

  4.   

      检查字段类型  就ok了  
      Access  字段没有Sql字段更加人性化
      

  5.   

    top (5*(1-1)) TOP后面必须跟一个常量 明白? 
      

  6.   


    变通做法。
    t1 (id , v int)
    t2 (id , n int, x char)
    选出 t1 中 的v 不在( t2 中 x='a'的前  statement(m) 条 n ) 中的记录jet-sql
    SELECT * FROM t1 WHERE v NOT IN
    (
    SELECT n FROM t2 as a 
    WHERE a.x='a' 
       AND (5-1)>
    (SELECT COUNT(*) FROM t2 as b 
    WHERE b.x=a.x AND b.id<a.id
    )
    )
      

  7.   

    是这样的,拼凑sql语句之前将(5*(1-1))转换成数字。
      

  8.   

    句中 (5-1) 实现
    selec top 5-1 x from tb where .. order by id
    中的 top 5-1
      

  9.   

    top后面的表达式的最外层括号去掉试试