SQL-查询-不在选择中的位置

SQL-查询-不在选择中的位置,sql,sql-server-2008,Sql,Sql Server 2008,好的,这是我的SQL:- SELECT Telephone, Houseno, Street, Tostreet, Passengername, Acceptancedate FROM Telephone WHERE Acceptancedate !> '2014/05/01' AND Telephone LIKE '011%' AND ( Zoneno = '6'

好的,这是我的SQL:-

SELECT Telephone, 
       Houseno, 
       Street, 
       Tostreet, 
       Passengername, 
       Acceptancedate 
FROM   Telephone 
WHERE  Acceptancedate !> '2014/05/01' 
       AND Telephone LIKE '011%' 
       AND ( Zoneno = '6' 
              OR Zoneno = '5' 
              OR Zoneno = '9' 
              OR Zoneno = '108' ) 
       AND Telephone = 'XXX' 
ORDER  BY Acceptancedate 
这将显示此电话号码的5条记录

但是,如果我更改
!>
>

它显示了3条记录

我的SQL是正确的,但我只想在
AcceptanceDate>“2014/05/01”
时显示此电话号码(因为电话号码不是唯一的)


任何帮助都将不胜感激

您可以使用
不存在
排除特定日期后出现的电话号码

SELECT  Telephone, 
        Houseno, 
        Street, 
        Tostreet, 
        Passengername, 
        Acceptancedate 
FROM    Telephone AS t
WHERE   Telephone LIKE '011%' 
AND     Zoneno IN ('6', '5', '9', '108')
AND     Telephone = 'XXX' 
AND     NOT EXISTS
        (   SELECT  1
            FROM    Telephone AS t2
            WHERE   t2.Telephone = t.Telephone
            AND     t2.Acceptancedate > '20140501' 
        );

您应该这样编写
where
子句:

WHERE  Acceptancedate <= '2014-05-01' AND
       Telephone LIKE '011%' AND
       Zoneno IN ('6', '5', '9', '108') AND
       Telephone = 'XXX' 

WHERE Acceptancedate您的用例是什么?如果您更改where语句中的运算符,那么很明显会得到不同的结果,那么通过更改您想说什么!>to>?基本上我想显示上面SQL中的所有数字,其中电话不在下面的查询中;选择*from Telephone WHERE acceptance data>'2014/05/01'谢谢,这正是我需要的:)