Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Where子句,多组条件_Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql Where子句,多组条件

Sql Where子句,多组条件,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我试图生成一个单表查询结果,其中包含由以下条件过滤掉的错误支付数据。我无法让查询过滤掉所有的条件集,只有前3个。我尝试了不同的排序,并将最后两个条件集作为子查询 如何筛选出以下所有条件 同样,1、2和3似乎也有期望的结果。条件4和5起作用,只是当遵循条件1、2和3时就不起作用了 select [history].[id] [history].[trans], CAST([history].[paid_dt] AS Date),

我试图生成一个单表查询结果,其中包含由以下条件过滤掉的错误支付数据。我无法让查询过滤掉所有的条件集,只有前3个。我尝试了不同的排序,并将最后两个条件集作为子查询

如何筛选出以下所有条件

同样,1、2和3似乎也有期望的结果。条件4和5起作用,只是当遵循条件1、2和3时就不起作用了

 select [history].[id] 
            [history].[trans],
            CAST([history].[paid_dt] AS Date),
            CAST([history].[due_dt] AS Date),

     FROM [history]

     LEFT OUTER JOIN [information] ON [history].[id] = [information].[id]

    --Condition 1--
            WHERE NOT  ([history].[trans]  IN
            ('TRSF',
             'TRR',
              'BEG',
             'DTR',
             'LTC',
           ))

             OR
    --Condition 2--
            (CONVERT(date,[paid_dt]) = '2015-12-30'
            AND [trans] = 'ADJE') 

            OR
    -- Condition 3--
            ([history].[paid_dt] = [information].[date]
            AND [history].[trans] LIKE '%ADJE%'
            AND [history].[due_dt] < '2017-01-01')

    --Condition 4--
            OR  
                 (datepart(dd, [paid_dt]) = 8) 
        --assume there is more to this condition--


           OR
    --Condition 5--
                 (CONVERT(date,[history].[paid_dt]) = '2018-01-08' 
             and [history].[trans] = 'MANR'));

只是想了解如何解决“不”只在一个条件下起作用。如果您不希望返回任何其他条件,如果为true。。。尝试围绕括号中“NOT”关键字后面的所有条件。另外,仔细检查括号的位置。我仍然看到一个奇数,可能是由于粘贴

WHERE NOT 
    (
        (Condition 1)
         OR
        (Condition 2)
     )

您也可以尝试使用引用来避开“NOT”关键字。

那么条件4和5不起作用了?你的问题有点让人困惑,其中一个不起作用的条件基本上被忽略了。条件4没有结束括号,我想省略了?条件5中的结束引号太多了。不知道这是由于错误的编辑,还是因为最初是这样,但条件4和5中的大括号不匹配。编辑是错误的编辑。纠正了不是一开始就让我。。。为了返回行,是否希望5个谓词集中的任何一个都不为true?我必须挖掘,看看是否按操作顺序优先…确认:不是beats或。