日期:2014-05-19  浏览次数:20582 次

求一SQL語句的寫法
有一表如下結構tab1:
id(自動增長型),empno,empdate(異動日期)
另有一tab2:
有其中一些字段:id(自動增長型),empno,empname,indate(入職日期),outdate(離職日期)

想得出如下結果:
對empno分組且上條的empdate作為起始時間,下一條的記錄作為終止時間,且入職日期作為第一條(對單一empno而言)記錄的起始時間,離職日期作為最後一條記錄的終止時間
類似:
empno,empname,sdate,edate

請各位高手幫手!



------解决方案--------------------
列點數據出來,以及你要得到的結果
------解决方案--------------------
select a.*,b.empname into #b from
(select empno,empdate from tab1 union all
select empno,indate from tab2 union all
select empno,outdate from tab2 )a
inner join
(select distinct empno,empname from tab2) b on a.empno=b.empno

select *,(select min(empdate) from #b where empno=a.empno and empdate> a.empdate ) from #b a

我想这样应可以~