现有业绩表 如下:
yib_id 主键id
yib_yyry_id 员工id
yib_yji 业绩
yjb_createtime 创建时间
求当月内某员工总业绩在所有员工中的名次 !求mysql 的语句 写法
sql 语句:
select t.*,@rownum:=@rownum+1 AS rownum from (SELECT yjb_yyry_id,yyryusername ,sum(yjb_yji) as total
FROM yjb where month(createtime) =month(now()) and year(createtime)=year(now())
group by yjb_yyry_id order by total desc) t,(SELECT @rownum:=0) r
执行结果:
yjb_yyry_id total rownum
1001 900 1
1002 800 2
1003 700 3
.....
现贴出完整代码:
Dao:
/**
* 业绩表
* @param yyryid 运营人员id
* @return 业绩
*/
public List<Object> getYji();
DaoImpl:
/**
* 获得业绩记录
*/
@SuppressWarnings("unchecked")
public List<Object> getYji() {
String sql = "select sum(yjb_yji) ,yyryusername ,yjb_yyry_id from yjb where month(createtime) =month(now()) and year(createtime)=year(now()) group by yyryusername order by sum(yjb_yji) desc; ";
return (List<Object>)getSession().createSQLQuery(sql).list();
}
js:
//业绩展示
function yejis(){
alert(1);
$.post("yyryActions!getMoney.action",null,function(data){
$chapin = $("#aax"); //冠军业绩div
$myjis = $("#myyeji"); //登录者业绩div
$mingci =$("#mingci"); //登录者名次li
var $ss = $("#yyryids").val(); //登录者id ,页面隐藏域获得
var $yeji ; //登录者业绩
var $mingci ; //登录者名次
var $maxyeji=data[0][0]; //冠军业绩
var $maxname=data[0][1]; //冠军名字
$.each(data,function(i,moneyss){
$.each(moneyss,function(i,a){
if(a==$ss){ //循环判断执行结果,如果有个值得id 和用户id 相同,那就是当前登录者的信息
$yeji=moneyss[0];
$mingci = moneyss[3];
}
})
if($yeji==undefined){
$chapin.html("当月冠军 "+$maxname+"<span class='fsize18 fweight' >"+$maxyeji+"</span>元");
}
else{
$chapin.html("当月冠军 "+$maxname+"<span class='fsize18 fweight' >"+$maxyeji+"</span>元");
$myjis.html("我的业绩<span>"+$yeji+"</span>");
$mingci.html("<p><span>"+$mingci+"</span>名</p><p>我的公司排名</p>");
}
});
});
}