Re: [SQL ] Oracle 的問題

看板Database作者 (宅男)時間15年前 (2010/11/10 07:34), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《passersby (passersby)》之銘言: : 請教一個問題 : 我們是Oracle 10g的資料庫 : 目前有三張Table如下 : Table: PartData : PartNo PartName : ------------------ : Y00001 電腦主機 : Y00002 滑鼠 : Y00003 螢幕 : Y00004 印表機 : Table: PO : POno PurcDate : --------------------------- : PO-201011001 2010/11/2 : PO-201010001 2010/10/16 : PO-201009001 2010/9/30 : PO-201010002 2010/10/23 : PO-201008001 2010/8/26 : PO-201007001 2010/7/24 : Table: POList : PONo PartNo PurcPrice PurcNum : -------------------------------------------- : PO-201011001 Y00001 25000 100 : PO-201010001 Y00001 15000 50 : PO-201009001 Y00002 200 653 : PO-201010002 Y00002 120 1000 : PO-201008001 Y00002 213 500 : PO-201007001 Y00003 50 100 : 而我想要抓出以下的資料 : PartNo PartName PurcDate PurcPrice : ------------------------------------------- : Y00001 電腦主機 2010/11/2 25000 : Y00002 滑鼠 2010/10/23 120 : Y00003 螢幕 2010/7/24 50 : Y00004 印表機 - - : 目前我下 : SELECT PartData.PartNo, PartData.PartName,PO.PurcDate,POList.PurcPrice : FROM PO,POList,PartData : WHERE PO.PONo = POList.PONo AND POList.PartNo = PartData.PartNo : 但是這樣撈出來的資料會有重複,我只想要抓PurcDate是最新的跟對應的PurcPrice : 不知道要怎麼下會比較好呢? : 敬請指教orz SELECT Pur.PartNo, Pur.PartName, Pur.PurcDate, Pur.PurcPrice FROM ( SELECT PartData.PartNo , PartData.PartName ,PO.PurcDate ,POList.PurcPrice ,rank() over(partition by PartData.PartNo order by PO.PurcDate desc) Rank FROM PO.PONo = POList.PONo AND POList.PartNo = PartData.PartNo ) Pur WHERE Pur.Rank = 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.22.238

11/11 11:03, , 1F
謝謝你 我會試試看 :)
11/11 11:03, 1F
文章代碼(AID): #1CsTgB9q (Database)
文章代碼(AID): #1CsTgB9q (Database)