请大家帮忙查看一下,语句那里出了问题两表中,符合以下两个条件的数据可以查询出来,语句如下:select gsmmodel,gsmimei,gsmsn,gsmproductdate, add_months(gsmproductdate,15)  as enddate 
from gsmdata a, servicedocument b
where  a.gsmproductdate 
between to_date('2006-04-01','yyyy-mm-dd') and to_date('2006-04-30','yyyy-mm-dd')
and a.gsmimei=b.documentoldimei此语句查询出来的数据是正确的,但是,我目的是想把相同a.gsmimei=b.documentoldimei 的记录排除在外,语句如下:
select gsmmodel,gsmimei,gsmsn,gsmproductdate, add_months(gsmproductdate,15)  as enddate 
from gsmdata a, servicedocument b
where  a.gsmproductdate 
between to_date('2006-04-01','yyyy-mm-dd') and to_date('2006-04-30','yyyy-mm-dd')
and a.gsmimei!=.documentoldimei但此语句查询出来的数据不准确,不知是那里出了问题.

解决方案 »

  1.   

    try:select gsmmodel,gsmimei,gsmsn,gsmproductdate, add_months(gsmproductdate,15)  as enddate 
    from gsmdata a, servicedocument b
    where  a.gsmproductdate 
    between to_date('2006-04-01','yyyy-mm-dd') and to_date('2006-04-30','yyyy-mm-dd')
    and a.gsmimei<>b.documentoldimei
      

  2.   

    <> 跟!= 结果是一样的,都不行
      

  3.   

    楼主的逻辑错了,至于为什么错了就自己去看看多表join的原理。用MINUS实现更好。
    select gsmmodel,gsmimei,gsmsn,gsmproductdate, add_months(gsmproductdate,15) as enddate
    from gsmdata a, servicedocument b
    where a.gsmproductdate
    between to_date('2006-04-01','yyyy-mm-dd') and to_date('2006-04-30','yyyy-mm-dd')
    minus
    select gsmmodel,gsmimei,gsmsn,gsmproductdate, add_months(gsmproductdate,15) as enddate
    from gsmdata a, servicedocument b
    where a.gsmproductdate
    between to_date('2006-04-01','yyyy-mm-dd') and to_date('2006-04-30','yyyy-mm-dd')
    and a.gsmimei=b.documentoldimei