11/27/2009

Oracle 找出loss的數字序列

日遇到個問題。
在table: pt_dltgls裡有location 1 ~ 500(符合條件的max location),其中有些location在輸入時漏掉了。所以要找出這裡漏掉的location,讓使用者來補回。

SQL做法:
1.Oracle語法列出1 ~ max location。
2.再minus現有的location,剩下的就是漏掉的location啦!~


Oracle SQL
Select level location
from dual 
connect by level <= (select nvl(max(location), 0) from pt_dltgls where dp_lot_id='C9J04031' and gls_status='S')
minus 
select distinct location from pt_dltgls t where dp_lot_id='C9J04031' and gls_status='S'

ps:感謝同仁Aming大力幫忙,沒有Aming還真寫不出來呢~哈~

沒有留言:

張貼留言