2014-01-17 26 views
-2

表:master_consmnt:需要的ResultSet如果狀態= N,如果狀態= N和狀態= P結果未顯示

fra_code mode  cnum  cost edate  status 
ET7867FRA SURFACE  19001 10.000 2014-01-17 P 
ET7867FRA SURFACE  19005 5.000 2014-01-17 P 
ET7867FRA SURFACE  19005 10.000 2014-01-17 P 
FRANE3981 SURFACE  19005 0.000 2014-01-17 P 
FRARE5664 SURFACE  19005 18.000 2014-01-17 N 
FRARE5664 SURFACE  19001 14.000 2014-01-17 N 
FRARE5664 SURFACE  180001 38.000 2014-01-17 N 

我想下面的結果,請準備好master_consmnt表仔細看,表具有狀態= P或N的多個cnum。我們想要一個結果集,如果不是status =「P」和status =「N」,那麼結果集具有cnum。

fra_code mode  cnum cost edate   status 
FRARE5664 SURFACE 180001 38.000 2014-01-17 N 
+0

什麼是當前查詢?你有什麼問題讓這個工作? –

+0

SELECT * FROM'master_consmnt' WHERE not('status' =「N」or'status' =「P」) –

回答

1

可以使用not exists做到這一點:

select mc.* 
from master_consmnt mc 
where mc.status = 'N' and 
     not exists (select 1 
        from master_consmnt mc2 
        where mc2.cnum = mc.cnum and status = 'P' 
       ); 
+0

這隻顯示status = N值,如果狀態= N且狀態= P,則不顯示條件語句,請查看我想resultset如果cnum不等於狀態= P –

+0

如果不存在我們用cnum和mc.fra_code替換fra_code與mc.cnum然後neded結果顯示..謝謝 –