......
where auto_no = 'autoNo' and wt_date <='comDate';看看你的数据类型是否一致,
从面上看,你的wt_date该是时间Data类型,'comDate'这是一个字符串。

解决方案 »

  1.   

    谢谢,但是类型是没有错误的主要看sql语句格式对不对
      

  2.   

    不知道你是用什么语言在开发.Delphi里面是单引号.
    经过测试语法上没有问题.
      

  3.   

    auto_no 也是字符型的??如果是,就没问题,如果是整型,那就需要把单引号去掉了
      

  4.   

    如果comDate是日期類型這樣寫就不對了,直接wt_date <=" + comDate + ")";就行了
    如果是字符串類型,需要強制類型轉換wt_date<=Convert(DataTime,102,'"+comDate+"')"
      

  5.   

    语义语句上没有问题的,就看你的数据类型是否一致了。good luck.
      

  6.   

    赞同feng2(蜀山风云),数据类型如果一致,如果对需求分析正确,SQL取得的确实是想要得结果,应该就不会有问题的ps:问问经理哪里不正确了
      

  7.   

    comDate应该使用to_date转换为date类型+ "' and wt_date <=to_date('" + comDate + "','yyyy-mm-dd HH24:MI:SS'))";其中'yyyy-mm-dd HH24:MI:SS要根据你实际传入的参数值格式修正
      

  8.   

    有点小问题,但还是跟需求相关:
    在求小于某日期的最大日期时,我注意到你加了个条件,autoNo=xxxx
    也就是说该最大日期仅仅是'xxxx'这个autoNo条件下的最大日期。
    但是外层的SQL中,又没有该条件,这样会把所有该日期下的记录
    都选择出来,而不管autoNo的条件,我认为这可能不符合你的需求。
    希望你能仔细检查需求,看是否有这问题。附录:
    SQL> create table T_WT_INFO
      2  (wt_code varchar2(10),
      3   wt_date date,
      4   autono varchar2(10));表已创建。SQL> select * from t_wt_info;WT_CODE              WT_DATE    AUTONO
    -------------------- ---------- --------------------
    1                    01-1月 -06 1111
    2                    02-1月 -06 1111
    3                    03-1月 -06 1111
    4                    02-1月 -06 1111
    5                    05-1月 -06 2222
    6                    01-1月 -06 1111
    7                    04-1月 -06 1111
    8                    04-1月 -06 1111
    9                    04-1月 -06 2222已选择9行。  1  select wt_code from t_wt_info
      2  where wt_date =
      3  (select max(wt_date) from t_wt_info
      4* where autono='1111' and wt_date <= to_date('2006-01-02','yyyy-mm-dd'))
    SQL> /WT_CODE
    --------------------
    2
    4SQL> ed
    已写入文件 afiedt.buf  1  select wt_code from t_wt_info
      2  where wt_date =
      3  (select max(wt_date) from t_wt_info
      4* where autono='1111' and wt_date <= to_date('2006-01-04','yyyy-mm-dd'))
    SQL> /WT_CODE
    --------------------
    7
    8
    9第一个查询没问题。第二个查询将wt_code=9也选择了出来,而他的autoNo= 2222