请教关于SQL语句查询记录的问题!
发布网友
发布时间:2022-04-07 19:41
我来回答
共1个回答
热心网友
时间:2022-04-07 21:11
--sql server数据库
/*思路是这样的,按人员编码partition ,时间ASC序 给所有的数字编码1,2,3,4,。。。as idx,然后自己跟自己inner join ,连接的条件是 A.人员编号=B.人员编号,同时 A.IDX =B.IDX-1 */
--step 1 按人员编码partition ,时间ASC序 给所有的数字编码 存入临时表#temp
select *,row_number() over(partition by [人员编码] order by [期间] ASC) as idx into #temp from tablename
---step 2 #temp和#temp自己inner join,结果存入 #temptotal
select A.*,A.[期间],A.[工资标准] as [A工资标准],B.[期间],B.[工资标准] as [B工资标准] into #temptotal from #temp A inner join #temp B on A.[人员编码]=B.[人员编码] and A.idx =B.idx - 1
/*step 3#temptotal [A工资标准],B.[工资标准] 做减法,你就知道这个人哪一次升了工资,哪一次降了工资,你要找最近的一次,那你就再给他们排序就行了*/