簡體   English   中英

Where子句,多組條件

[英]Where clause, multiple sets of conditions

我正在嘗試生成一個單表查詢結果,其中錯誤付款數據已按以下條件過濾掉。 我無法獲取查詢以篩選出所有條件集,僅篩選出前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'關鍵字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM