Re: [SQL ] 列出一個欄位中開始變化的前後值
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 10 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章