我正在尝试过滤出发票编号相似但已添加一些字符的记录。我不希望记录有信用发票的地方。发票编号看起来像6245GE134
,而信用发票通常会添加“ CR”,但这有所不同。
我尝试使用replace语句进行各种修改:
where invoiceNr not in (select replace (invoiceNr, 'cr' ,'') from
tblinvoices where invoicenr like '%cr' and strType = 'credit'
问题是,有些字段中添加了“ cr”,而另一些字段中则使用了“ credit”甚至是完全不同的字段。 理想情况下,我希望能够使用通配符来覆盖所有可能性,请参阅下面的
where invoiceNr not like '%' + (select invoiceNr from tblinvoices where
strtype = 'credit' ) + '%'
预期:它将过滤出发票类型中贷方类型的发票中出现发票的所有记录
实际:
子查询返回了多个值。当 子查询遵循=,!=,<,<=,>,> =,或当子查询用作 表达式。
答案 0 :(得分:0)
如果我理解您的意思。 您应该可以使用“不存在”解决问题。
就像朱利安(Julian)在这里一样:https://stackoverflow.com/a/13376052/9272910
编写没有完整语句的完整SQL有点棘手。