select * from table_name
where BaseDocEntry=15 and BaseDocType='PRRH' and ItemCode='TestStudy2'
and WhseCode='01' and (currentdoctype<>'PUSH' and CurrentDocEntry<>15)
根据我上面写的查询,将获取INS2中的数据,不包括currentdoctype [PUSH]和CurrentDocEntry不是15的所有数据。我期望我的查询是,它必须仅排除数据这个组合即currentdoctype = PUSH和CurrentDocEntry = 15发生在同一行,然后排除该行。
你能解决这个问题吗?
答案 0 :(得分:14)
使用此:
and not (currentdoctype='PUSH' and CurrentDocEntry=15)
答案 1 :(得分:1)
由于您使用的是AND
而不是OR
,因此当currentdoctype与'PUSH'不同且CurrentDocEntry与15不同时,将排除查询。
如果你想要currentdoctype = PUSH和CurrentDocEntry = 15,那么只需改变这些条件:
select * from ins2
where BaseDocEntry=15 and BaseDocType='PRRH' and ItemCode='TestStudy2'
and WhseCode='01' and (currentdoctype='PUSH' and CurrentDocEntry=15)
答案 2 :(得分:0)
在NOT不起作用的某些情况下,您可以使用简单的case和where子句来解决它。这将仅排除currentdoctype =&#39; PUSH&#39; AND CurrentDocEntry = 15。
27.1.0