SELECT   reg_ticket_id, reg_dt, reg_div_cde2, apn, NAME, doc_cde, view_dt,
         cht_id, sex, CEIL ((MONTHS_BETWEEN (SYSDATE, birt_dt)) / 12) age1,
         insu_type, status, view_doc
    FROM reg_ticket
   WHERE CEIL ((MONTHS_BETWEEN (SYSDATE, birt_dt)) / 12) >= 35
     AND view_dt IS NOT NULL
     AND first_tm = '0'
     AND reg_div_cde2 IN
            ('1131', '1132', '1133', '1134', '1135', '1136', '1137', '1138',
             '1130', '1901')
     AND reg_dt BETWEEN '2009-10-01' AND '2010-10-18'
ORDER BY reg_dt ASC===============================================================================
上面是我的SQL查询语句,为什么不能筛选出age1>=35的记录?请指点

解决方案 »

  1.   

    SELECT reg_ticket_id, reg_dt, reg_div_cde2, apn, NAME, doc_cde, view_dt,
      cht_id, sex, CEIL ((MONTHS_BETWEEN (SYSDATE, birt_dt)) / 12) age1,
      insu_type, status, view_doc
      FROM reg_ticket
      WHERE CEIL ((MONTHS_BETWEEN (SYSDATE, birt_dt)) / 12) >= 35
    你不加其他條件試一下
      

  2.   

    看不出原因,我这边反正能筛选出
    SELECT emp.*,CEIL ((MONTHS_BETWEEN (SYSDATE,HIREDATE)) / 12) age1 FROM emp
    WHERE CEIL ((MONTHS_BETWEEN (SYSDATE,HIREDATE)) / 12) >= 30
      

  3.   

    SELECT birt_dt
      FROM reg_ticket
      WHERE birt_dt + interval '35' year < sysdate;
    查詢一下這句的結果
      

  4.   


    --单独看不出什么错误 试下下面的birt_dt<=sysdate-interval '35' year
      

  5.   


    2
    --CEIL ((MONTHS_BETWEEN (SYSDATE, birt_dt)) / 12) >= 35 这样也可以birt_dt<=add_months(sysdate,-35*12)
      

  6.   

    birt_dt 是不是 date 或者 timestamp类型。。不是转化后再 months_between