作者sabreur (無奈)
看板Database
標題[SQL ] 子查詢的問題
時間Tue Dec 23 14:43:36 2014
資料庫名稱: 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' 要列出每個員工這個情況的資料
我不知道要從何下手..
懇請賜關鍵字 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.255.187
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1419317019.A.EFF.html
※ 編輯: sabreur (59.120.255.187), 12/23/2014 15:26:39
→ sabreur: 嗯... 我用rank() + partition 去解決了 我該自刪嗎 冏 12/23 15:27
推 gun5566: 不用自刪阿,可以留著給後面的人看 12/24 09:26