Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查找当前薪酬最高的员工时出现问题_Mysql_Sql - Fatal编程技术网

MySQL查找当前薪酬最高的员工时出现问题

MySQL查找当前薪酬最高的员工时出现问题,mysql,sql,Mysql,Sql,表:环境管理计划 --------------------------------- EID | NAME | TITLE 1 | Dee | Director 2 | Mac | Analyst 3 | Dennis | Engineer 4 | Charlie | Janitor --------------------------------- 表:comp ---------------

表:环境管理计划

---------------------------------
EID     | NAME      | TITLE
1       | Dee       | Director
2       | Mac       | Analyst
3       | Dennis    | Engineer
4       | Charlie   | Janitor
---------------------------------
表:comp

-----------------------------------------
EID     | BEGIN_DT   | END_DT     | SALARY
1       | 2018-01-01 | 2018-02-01 | 100
1       | 2018-02-02 | 2018-03-15 | 110
1       | 2018-03-16 | 2018-03-31 | 130
1       | 2018-04-01 | 2019-12-31 | 120
-----------------------------------------

问题。返回当前薪酬最高的员工的姓名和工资

您的问题有点不清楚您到底在寻找什么,而且薪酬表上只有一名员工,所以它总是EID 1或Dee。不确定这是一个错误还是现在

除此之外,我认为有几种不同的方法可以做到这一点。我将如何连接EID彼此相等的表,按薪资升序对表进行排序,然后限制为1。这应该会给你一个记录谁的薪酬最高

但是,这并没有考虑日期和内容。这个问题有点不清楚。如果您想要类似的东西,那么您可以使用子查询来计算salary*date差异,然后执行类似于上面的操作


希望这能为你指明一个更好的方向!祝你好运

您好Siddhant Farwaha,欢迎来到Stack Overflow。到目前为止你试过什么?你应该表现出你的努力,并解释你是在哪里被绊倒的。这是一个我朋友无法解决的面试问题。也许面试官会在问题解决的过程中提供一些澄清。我承认这个问题有点含糊,但我认为它希望我们考虑到获得当前补偿的日期。你认为下面的代码有意义吗?从e.EID=c.EID组上的emp e JOIN comp c中选择e.NAME,最大(c.SALARY),按时间差(年,c.END_DT,SYSDATE())小于0的e.NAME选择;工资*日期的差异也是有道理的。