Re: [SQL ] Oracle 的問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):