欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

值得纪念的mysql 语句 查询某人本月的总业绩 在全公司的名次

程序员文章站 2022-05-05 17:29:01
...

现有业绩表如下: yib_id主键id yib_yyry_id员工id yib_yji业绩 yjb_createtime创建时间 求当月内某员工总业绩在所有员工中的名次!求mysql的语句写法 sql 语句: select t.*,@rownum:=@rownum1 AS rownum from (SELECT yjb_yyry_id,yyryusername ,sum(yjb_y

现有业绩表 如下:
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 getYji();

DaoImpl:

/**
* 获得业绩记录
*/
@SuppressWarnings("unchecked")
public List 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)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+""+$maxyeji+"元");
}
else{
$chapin.html("当月冠军 "+$maxname+""+$maxyeji+"元");
$myjis.html("我的业绩"+$yeji+"");
$mingci.html("

"+$mingci+"

我的公司排名

");
}
});
});

}