2010-12-02 152 views
0

我查詢甲骨文內部查詢

select kc.prod_id, kc.prod_actv_ts 
from kit_cmpnt kc ,kit_cmpnt_stock kcs, prod p 
where kc.cmpnt_cd='016' 
and kcs.kit_cmpnt_nbr= kc.kit_cmpnt_nbr 
and kcs.stock_id=1 
and kcs.prod_id=kc.prod_id 
and kcs.prod_actv_ts=kc.prod_actv_ts 
and p.prod_id= kc.prod_id 
and p.prod_actv_ts= kc.prod_actv_ts 
and p.prod_inactv_ts is null; 

我想kc.prod_id的獨特組合,kc.prod_actv_ts

像不同的(kc.prod_id,kc.prod_actv_ts)

但我得到的是重複prod_id和prod_actv_ts的組合

請幫忙

回答

2

我重組查詢,如下所示:

select kc.prod_id, kc.prod_actv_ts 
from kit_cmpnt kc 
where kc.cmpnt_cd='016' 
and exists 
     (select 1 from kit_cmpnt_stock kcs 
     where kcs.stock_id=1 
     and kcs.kit_cmpnt_nbr= kc.kit_cmpnt_nbr 
     and kcs.prod_id=kc.prod_id 
     and kcs.prod_actv_ts=kc.prod_actv_ts) 
and exists 
     (select 1 from prod p 
     where p.prod_id= kc.prod_id 
     and p.prod_actv_ts= kc.prod_actv_ts 
     and p.prod_inactv_ts is null); 

一般原則是你不應該在FROM子句中有某些東西,除非你從中得到某些東西。如果您沒有從中獲取任何內容,則它是一個過濾器,並且應該作爲子查詢位於WHERE子句中。

0

嘗試使用select *找出重複的原因。

+0

jonearles 如何選擇distint(prodid,prodts)的組合? – Aravind 2010-12-02 07:10:12

+0

@aravind您可以在選擇之後立即添加單詞「distinct」。不需要括號。 – 2010-12-02 07:15:58

0

使用不同過濾獨特的組合... 例如.. 選擇不同(A,B,C)從表 其中 一些條件

+0

不同的(a,b,c)會導致錯誤 – Aravind 2010-12-02 08:08:39