SQL语句   (满足A条件或者B条件   )同时满足C   
  意思类似:   
  (a   or   b)   and   c   
  请问应该怎么写? 

解决方案 »

  1.   


    --你不是都写出来了么
    select * from tb_temp tmp where  (tmp.number > 500 or tmp.number < 100) and tmp.number != 10
      

  2.   

    就是这么写:
    SELECT * FROM table
    WHERE (a or b) AND c
      

  3.   

    一般优先级是
    not>and>or括号是老大
      

  4.   

    select sum(A.monthmoney) 
    from monthbalance A , vehicleregister B,vehiclelogout C 
    where 
    (A.vehiclenumber=B.vehiclenumber or A.vehiclenumber=C.vehiclenumber) and A.monthtime='2008-12' and B.enterpriseid='dw03'我想要的结果是:当A.vehiclenumber=B.vehiclenumber 成立,并且A.vehiclenumber=C.vehiclenumber这也有值时,需要全部求和sum(A.monthmoney)
    如果 A.vehiclenumber=C.vehiclenumber不成立时,就只要A.vehiclenumber=B.vehiclenumber 这个条件的求和。
      

  5.   

    你的描述我看不大懂
    A.vehiclenumber=C.vehiclenumber这个条件有什么用????????
      

  6.   

    按你的意思,这个条件一定要A.vehiclenumber=B.vehiclenumber,不一定要A.vehiclenumber=C.vehiclenumberselect sum(A.monthmoney) 全部求和,sum(case when A.vehiclenumber<>C.vehiclenumber then 0 else A.monthmoney end) 部分求和
    from monthbalance A , vehicleregister B,vehiclelogout C 
    where A.vehiclenumber=B.vehiclenumber and A.monthtime='2008-12' and B.enterpriseid='dw03' 
      

  7.   

    我的理解是要求累计的是 A.vehiclenumber=B.vehiclenumber下A.monthmoney, 无论A.vehiclenumber=C.vehiclenumber成立与否都不影响求和
      

  8.   

    是的,就是这样的。A.vehiclenumber=C.vehiclenumber这个如果条件成立,则在A.monthmoney相加上去
      

  9.   

    那在一个select 语句里写出一列是全部求和,另一列是部分求和不完完成了吗?
      

  10.   

    if (条件A or 条件B) and 条件C then
       sql语句块
    end if;
      

  11.   

    既然A.vehiclenumber=C.vehiclenumber这个条件对求和没影响
    那你写上去干吗?不写不就完了