问题描述
你好,问一下汤姆团队。
我有一个SQL查询,但我得到了不想要的结果。
发票 _ 发件人电子发票模式 _ 电子发票SUBSTR (模式 _ en LOADED_606批准
101671866 B340000004003 B3100000199 31 0 0
101671866 B330000004002 B3100000199 31 0 0
101671866 B330000004009 B3200000199 32 0 0
101671866 B340000004010 B3200000199 32 0 0
101671866 B440000004004 0 0
101671866 b31000004000 0 0
101671866 B450000004005 0 0
由于这种情况,我不希望第3行和第4行:
和 (t2.invoice _ type不在 (32,41,43) 或SUBSTR(t3.modified_einvoice,2,2) 不在 (02,32)
如果在位置2和3 SUBSTR的modified_einvoice列中找到02或32 (t3.modified_einvoice,2,2),那么我希望删除该行。但它不起作用。
提前感谢。
我有一个SQL查询,但我得到了不想要的结果。
SELECT t1.invoice_sender,t1.einvoice,t3.modified_einvoice,SUBSTR(t3.modified_einvoice,2,2),t2.LOADED_606,t4.APPROVALS
FROM table1 t1
INNER JOIN table2 t2 on t1.id=t2.id
LEFT JOIN table3 t3 ON t2.id=t3.id
INNER JOIN table4 t4 ON (t1.invoice_sender = t4.invoice_sender AND t1.einvoice = t4.einvoice)
WHERE (t2.invoice_type NOT IN (32,41,43) OR SUBSTR(t3.modified_einvoice,2,2) NOT IN (02,32,41,43))
AND t2.LOADED_606 = 0 AND t4.APPROVALS = 0
AND t4.INV_SENT_DATE < TRUNC(SYSDATE) AND t4.INV_SENT_DATE >=
(CASE WHEN TO_NUMBER(TO_CHAR(SYSDATE,'DD')) <= 15 THEN TRUNC(SYSDATE-20,'MM')
ELSE TRUNC(SYSDATE,'MM')
END)
AND (t2.invoice_type NOT IN (32,41,43) OR SUBSTR(t3.modified_einvoice,2,2) NOT IN (02,32));发票 _ 发件人电子发票模式 _ 电子发票SUBSTR (模式 _ en LOADED_606批准
101671866 B340000004003 B3100000199 31 0 0
101671866 B330000004002 B3100000199 31 0 0
101671866 B330000004009 B3200000199 32 0 0
101671866 B340000004010 B3200000199 32 0 0
101671866 B440000004004 0 0
101671866 b31000004000 0 0
101671866 B450000004005 0 0
由于这种情况,我不希望第3行和第4行:
和 (t2.invoice _ type不在 (32,41,43) 或SUBSTR(t3.modified_einvoice,2,2) 不在 (02,32)
如果在位置2和3 SUBSTR的modified_einvoice列中找到02或32 (t3.modified_einvoice,2,2),那么我希望删除该行。但它不起作用。
提前感谢。
专家解答
如果没有create table inserts解释你正在尝试做什么,很难弄清楚SQL查询中发生了什么。请在将来提供这些。
但是...
你把条件和或结合在一起。
所以这只是excludes行,其中both以下是正确的:
t2.invoice _ type NOT IN (32,41,43)
SUBSTR(t3.modified_einvoice,2,2) 不在 (02,32) 中
所以大概你会得到第3行和第4行,因为invoice_type不是32、41或43。
但是...
你把条件和或结合在一起。
所以这只是excludes行,其中both以下是正确的:
t2.invoice _ type NOT IN (32,41,43)
SUBSTR(t3.modified_einvoice,2,2) 不在 (02,32) 中
所以大概你会得到第3行和第4行,因为invoice_type不是32、41或43。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




