问个有点复杂的SQL
表1:tpinfo(id,名字,...)
从表:tpelse(id,级别,工资,时间)
第一个表就不说了,第二个表描述一下.记录一个人的工资变化
记录形式如:
id,级别,工资,时间
100,6,300,2000-1-1
100,5,320,2000-8-1
100,4,360,2002-11-1
101,3,400,1999-4-1
101,5,320,2000-2-1
101,2,560,2002-11-1
.....
我要查询出所有人员在某个时间的级别及工资怎么写更简单高效呢?注意那个时间哦.
------解决方案--------------------没有明白。!
------解决方案--------------------select b.ID,a.Name,b.级别,b.工资,b,时间 from tpinfo a ,tpelse b where a.ID=b.ID And b.时间 between '2000-1-1 ' and '2000-8-1 '
------解决方案----------------------取小于或等于指定日期的最大时间
select * from tpelse a join (select max(时间) 时间 from tpelse where 时间 <=@dt group by id)b on a.时间=b.时间
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html