Re: [SQL ] 兩張同性質Table找出相同資料較新的一筆
select *
from (
select *,row_number()
over (partition by LotID order by LastStepTime desc) as num
from (select * from TableA union all select * from TableB) t1
) t2
where num = 1
※ 引述《s1237890210 (一瞑大一吋)》之銘言:
: 資料庫名稱:Oracle 11g
: 內容/問題描述:
: Lot在不同廠區作業,希望能列出每一筆Lot的最新一筆停留站點,
: 不一定每筆Lot都會同時存在兩張Table內,
: 目前的作法是先Union All後用時間排序,用迴圈跑取不重複的資料出來,
: 應該要有辦法直接Select出來,請賜教了<(_ _)>
: Table A Table B
: ------------------------------- ------------------------------
: LotID LastStep LastStepTime LotID LastStep LastStepTime
: A Astep3 2016/10/15 B Bstep4 2016/10/14
: B Astep3 2016/10/13 F Bstep3 2016/10/05
: C Astep1 2016/10/14 G Bstep5 2016/10/10
: D Astep2 2016/10/13 A Bstep5 2016/10/11
: ------------------------------- ------------------------------
: 希望得到的查詢結果:
: LotID LastStep LastStepTime
: -------------------------------
: A Astep3 2016/10/15
: B Bstep4 2016/10/14
: C Astep1 2016/10/14
: D Astep2 2016/10/13
: F Bstep3 2016/10/05
: G Bstep5 2016/10/10
: -------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.80.36
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1476602424.A.AF6.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章