日期:2014-05-20  浏览次数:20753 次

求解:sql 关于or 和and的问题
select Wzgl_Jdsbxx.gzbh,Wzgl_SBJSCSZB.CSMC  from Wzgl_SBJSCSXXB,Wzgl_SBJSCSZB,Wzgl_Jdsbxx,yh_gzxx_cur  where Wzgl_SBJSCSXXB.CSBH=Wzgl_SBJSCSZB.ID and Wzgl_Jdsbxx.gzbh=Wzgl_SBJSCSXXB.GZBH and yh_gzxx_cur.gzbh=Wzgl_Jdsbxx.gzbh 
    or (Wzgl_SBJSCSZB.CSMC='使用期限'   and  DATEDIFF(d, Wzgl_Jdsbxx.syrq,GETDATE())>JSCSZ ) --1 
    or (Wzgl_SBJSCSZB.CSMC='维修次数'   and dxcs >JSCSZ )                                    --2
    or (Wzgl_SBJSCSZB.CSMC='闲置' and yh_gzxx_cur.newstate='备用' and DATEDIFF(d, yh_gzxx_cur.bgri,GETDATE())>JSCSZ  )                                                          --3

要的效果是条件1或2或3满足其一即可
在线求解啊~~~
------解决方案--------------------
select Wzgl_Jdsbxx.gzbh,Wzgl_SBJSCSZB.CSMC  from Wzgl_SBJSCSXXB,Wzgl_SBJSCSZB,Wzgl_Jdsbxx,yh_gzxx_cur  where Wzgl_SBJSCSXXB.CSBH=Wzgl_SBJSCSZB.ID and Wzgl_Jdsbxx.gzbh=Wzgl_SBJSCSXXB.GZBH and yh_gzxx_cur.gzbh=Wzgl_Jdsbxx.gzbh  and (
     or (Wzgl_SBJSCSZB.CSMC='使用期限'   and  DATEDIFF(d, Wzgl_Jdsbxx.syrq,GETDATE())>JSCSZ ) --1 
     or (Wzgl_SBJSCSZB.CSMC='维修次数'   and dxcs >JSCSZ )                                    --2
     or (Wzgl_SBJSCSZB.CSMC='闲置' and yh_gzxx_cur.newstate='备用' and DATEDIFF(d, yh_gzxx_cur.bgri,GETDATE())>JSCSZ  )    )