注册 登录
编程论坛 SQL Server论坛

sql 多字段查询

cybin 发布于 2008-09-23 15:58, 1298 次点击
我建立的一个表carinfo
字段为:CarName(varchar(50)),    EndTime(datetime), FKFSNAME(nvarchar(50))
       国产车                    2008-9-1           客户自付
       进口车                    2008-9-2            销售部
          ...                      ....              .....
我用
    select * from carinfo where EndTime between '2008-9-2'and '2008-9-22' and(fkfsname='客户自付' or fkfsname='销售部') and Carname='国产车’这个结果能够查询出来(显示正确)
可是我要查询FKFSNAME不是销售部和客户自付显示记录
命令为:  
      select * from carinfo where EndTime between '2008-9-2'and '2008-9-22' and(fkfsname!='客户自付' or fkfsname!='销售部') and Carname='国产车’
或者用
      select * from carinfo where EndTime between '2008-9-2'and '2008-9-22' and(fkfsname not like'客户自付' or fkfsname not like'销售部') and Carname='国产车’
可是,显示结果还是会包括销售部和客户自付,请问我上面的命令出错哪里?
请高手和大家帮帮忙!谢谢!!!!!

[[it] 本帖最后由 cybin 于 2008-9-23 16:49 编辑 [/it]]
6 回复
#2
师妃暄2008-09-23 16:40
select * from carinfo where EndTime between '2008-9-2'and (fkfsname!='客户自付' or fkfsname!='销售部') and Carname='国产车’
改为select * from carinfo where EndTime between '2008-9-2'and (fkfsname<>'客户自付' or fkfsname<>'销售部') and Carname='国产车’

select * from carinfo where EndTime between '2008-9-2'and (fkfsname not like'客户自付' or fkfsname not like'销售部') and Carname='国产车’
改为
select * from carinfo where EndTime between '2008-9-2'and (fkfsname not like %'客户自付' %or fkfsname not like %'销售部'%) and Carname='国产车’
#3
cybin2008-09-23 16:46
回复 2# 师妃暄 的帖子
我用了你的语句,还是不行。
他还是会把客户自付和销售部的显示出来。
#4
ting47632008-09-23 16:50
1)EndTime between 开始时间 and 结束时间
而你and 后是跟的是另一个条件,如果你想查询'2008-9-2'的可以用 “=”
2)对于不等于,可以用"!=",也可以用"<>"
3)你要查不是’客户自付‘和’销售部‘的,应该用“AND”

      select * from carinfo where EndTime = '2008-9-2'and (fkfsname!='客户自付' and fkfsname!='销售部') and Carname='国产车'
或者
      select * from carinfo where EndTime = '2008-9-2'and (fkfsname not like'客户自付' and fkfsname not like'销售部') and Carname='国产车’

4)建议用第一种,速度会快些
#5
师妃暄2008-09-23 16:52
select * from carinfo where EndTime between '2008-9-2'and '2008-9-22' and(fkfsname<>'客户自付' and fkfsname<>销售部') and Carname='国产车’
#6
cybin2008-09-23 16:53
回复 4# ting4763 的帖子
我刚才的帖子写错了。我还是要用到EndTime时间范围了。
#7
cybin2008-09-23 16:57
回复 5# 师妃暄 的帖子
谢谢,搞定了。
1