1
SELECT DISTINCT x1.NUM_KANBAN_ID ID, 
                TO_CHAR(x1.DT_CREATE,'YYYY-MM-DD') CREATED,
                x5.TXT_PLANT_CD CD,
                TO_CHAR(x4.DT_FIRST_VIEWED,'YYYY-MM-DD') VIEWED,
                TO_CHAR(x4.DT_DUE,'YYYY-MM-DD') DUE, x4.
                TXT_SHUTTLE_NUMBER SHUTTLE, 
                (select count(*) 
                 from WEDI_ASN_TO_DIMENSION t8 
                 where t8.TXT_MATCH_CD='1' 
                 AND t8.NUM_DIMENSION_ID=x2.NUM_DIMENSION_ID AND t8.NUM_MATCH_ID = x1.NUM_KANBAN_ID) ASN, 
                 x1.TXT_JIT_CALL_NUM,
                 x2.NUM_VENDOR_ID VENDOR_ID 
 FROM WEDI_KANBAN x1, WEDI_DIMENSION x2, WEDI_USER_VENDORS x3, WEDI_KANBAN_TO_DIMENSION x4, WEDI_PLANT x5
 WHERE x5.NUM_PLANT_ID = x2.NUM_PLANT_ID AND 
       x1.TXT_STATUS_CD = 'C' AND
       x2.NUM_VENDOR_ID = x3.NUM_VENDOR_ID AND 
       x4.NUM_DIMENSION_ID = x2.NUM_DIMENSION_ID AND 
       x1.NUM_KANBAN_ID = x4.NUM_KANBAN_ID AND 
       x1.DT_CREATE < SYSDATE - 15 AND
       x5.TXT_PLANT_CD LIKE '%'  AND
       x2.TXT_MATERIAL_NUM LIKE '%' AND 
       ((x4.TXT_SHUTTLE_NUMBER IS NULL) OR (x4.TXT_SHUTTLE_NUMBER LIKE '%')) AND 
       x4.DT_DUE < SYSDATE - 10 
 ORDER BY VENDOR_ID

上記のクエリでは、ASNが1または2のみのIDを表示する必要があります。ASNがこのような0,1,2を持っている場合、iこれらのIDを表示しないでください。通常、IDのASNが0の場合、iは表示されません。plsは提案します

4

2 に答える 2

1

最も簡単な解決策は次のとおりです。

select * 
from (your query)
where 0 not in (select ASN from (your query))

クエリを2回記述しないようにするには、次のようにします。

with (your query) as A
select * 
from a 
where 0 not in (select asn from a)

また

with (your query) as A
select * 
from a 
where not exists (select * from a where asn = 0)

ただし、ゼロに等しいASNが存在する場合に行を返さないようにクエリを書き直す可能性はありますが、クエリを理解するのは難しく、DISTINCT句が必要なため、何かが間違っていることはほぼ間違いありません。それは悪い兆候です。

于 2013-02-01T06:52:26.647 に答える
0

(ASN = 1) Or (ASN = 2)Whereステートメントに次のようなものを追加します

于 2013-02-01T06:58:13.027 に答える