[英]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.