[SQL ] 子查詢的問題

作者: sabreur (無奈)   2014-12-23 14:43:36
資料庫名稱: Oracle
資料庫版本: 11gR2
內容/問題描述:
各位高手好
我有一個table有許多欄位
但只會用到 id(PK) 員工編號 狀態 重複值 四個欄位去讓一個view join
PS:(重複值這個欄位是 該員工重複於該table幾次 僅有1筆為 0; 2筆則有 0,1
但現在業務單位只想要看到特定狀態下最新的(指 符合狀態下 重複值最高的)
查特定員工的SQL 是如下
select * from (
select id,員工編號,重複值,狀態碼 from table
where 員工編號 = 'xxxxxxx'
and ((重複值 > 0 and 狀態碼 in(一些狀態碼)) or 重複值 = '0')
order by 重複值 desc
) where rownum = 1
可是拿掉 員工編號 = 'xxxxx' 要列出每個員工這個情況的資料
我不知道要從何下手..
懇請賜關鍵字 感謝
作者: sabreur (無奈)   2014-12-23 15:27:00
嗯... 我用rank() + partition 去解決了 我該自刪嗎 冏
作者: gun5566 (惦惦)   2014-12-24 09:26:00
不用自刪阿,可以留著給後面的人看

Links booklink

Contact Us: admin [ a t ] ucptt.com