--你不是都写出来了么 select * from tb_temp tmp where (tmp.number > 500 or tmp.number < 100) and tmp.number != 10
就是这么写: SELECT * FROM table WHERE (a or b) AND c
一般优先级是 not>and>or括号是老大
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 这个条件的求和。
按你的意思,这个条件一定要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'
--你不是都写出来了么
select * from tb_temp tmp where (tmp.number > 500 or tmp.number < 100) and tmp.number != 10
SELECT * FROM table
WHERE (a or b) AND c
not>and>or括号是老大
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 这个条件的求和。
A.vehiclenumber=C.vehiclenumber这个条件有什么用????????
from monthbalance A , vehicleregister B,vehiclelogout C
where A.vehiclenumber=B.vehiclenumber and A.monthtime='2008-12' and B.enterpriseid='dw03'
sql语句块
end if;
那你写上去干吗?不写不就完了