【发布时间】:2019-04-22 14:41:22
【问题描述】:
我正在尝试从 sql select 语句中排除记录,其中我的 salesfacts 表中最细的列是发票号,但问题是发票号可能在前几年使用过(我检查了 26表中的重复项)。我知道这是一个业务规则问题,但我没有能力更改它。
我试图从中排除的代码是长 sql 语句的一部分,该语句包含三个主要部分,这些部分与联合语句相结合,这三个部分是:应收账款、未结订单和日记帐分录。在这种情况下,我试图从“应收账款”部分中排除记录。
因此,对于这种情况,我试图从应收账款部分中排除 5 个发票编号,但前提是它们发生在 2019 年 3 月。(这样可以确保我不会排除以前可能存在或不存在的重复发票编号期)。也许我是偏执狂,我想排除的记录实际上被重复的可能性很小,但如果业务规则允许重复,我不想冒产生意外结果的风险。
我想找到一种干净的方法将这些添加到简单的 where 语句中而不是使用“除外”,因为将来我将不得不排除其他记录,而且我不知道多个例外和联合是否会起作用。
不工作:
Select invoicedate,invoiceno
from saleshistory
where (invoiceno != '1001' and invoicedate = '2011-01-14')
上面显示了发票日期为 2011 年 1 月 14 日的所有记录,除了发票编号 1001。我希望代码显示除发票编号 1001 以外的所有记录,如果它发生在 2011 年 1 月 14 日。
【问题讨论】: