Re: [SQL ] 列出一個欄位中開始變化的前後值

看板Database (資料庫)作者 (rock)時間8年前 (2016/04/28 23:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/10 (看更多)
※ 引述《Schematic (小小寶的媽)》之銘言: : 資料庫名稱:SQL SERVER : 資料庫版本:2012 : 內容/問題描述: : 列出某位員工在哪一年換了單位,沒有換單位的員工不用列出 : Num id year unit : -------------------------- : 1 1 99 A : 2 1 98 B : 3 1 97 B : 4 1 96 B : 1 2 99 B : 2 2 98 B : 3 2 97 B : 1 3 97 C : 2 3 96 C : 3 3 95 C : 4 3 94 B : 1 4 97 A : 2 4 96 B : 3 4 95 B : 預期結果,員工1在99年從B單位換到A單位 : id year unit : ----------------------- : 1 99 A : 1 98 B : 3 95 C : 3 94 B : 4 97 A : 4 96 B : 謝謝 寫得不是很好,請將就一下 with tmp as(select ROW_NUMBER() over(partition by id,units order by tyear desc) as Num ,id ,tyear ,units from [dbo].[Table_1]) ,tmp2 as(select id from tmp where Num=1 group by id having count(id)>1) select a.id,tyear,units from tmp a inner join tmp2 b on a.id=b.id where Num=1 order by id,tyear desc -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.194.8 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1461858036.A.268.html
文章代碼(AID): #1N8Yxq9e (Database)
討論串 (同標題文章)
文章代碼(AID): #1N8Yxq9e (Database)