当前位置: 首页 > 知识库问答 >
问题:

如何在下面的模式中列出在某个特定经理手下工作的比最近雇佣的员工高的员工?

张姚石
2023-03-14

我有一个emp表的模式,定义为emp(empno、ename、job、mgr、hiredate),我必须评估问题陈述的查询:

列出在King手下工作的比最近雇佣的员工年长的员工。

我把这个问题写为:

select hiredate from emp where hiredate < ANY 
( select e.hiredate from emp e where e.mgr= (select e.empno from emp e 
where e.ename='KING') order by hiredate desc )   

这个查询给出了语法错误,请帮助我。

共有3个答案

祝允晨
2023-03-14

使用max来查找最大雇佣日期,并使用join来代替子查询。

select * from emp where hiredate < 
  (select max(e.hiredate) 
   from emp e 
   join emp mg on e.mgr = mg.empno
   where mg.ename = 'KING')

我猜你有这个错误信息

ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML。

所以你应该添加一个TOP 1来让它工作(但是,这真的更可读吗?)

select hiredate from emp where hiredate < ANY 
(select TOP 1 e.hiredate from emp e where e.mgr= (select e.empno from emp e 
where e.ename='KING') order by hiredate desc ) 
蓬思博
2023-03-14

要让员工在过去7天内加入的King手下工作,您可以尝试:

SELECT e.*
FROM emp e
WHERE e.mgr = (SELECT empno FROM emp WHERE ename='KING') AND
      e.hiredate > DATEADD(day, -7, GETDATE())

请注意,查找King的员工编号的子查询是不相关的。这是一种友好的子查询。

裴承安
2023-03-14

改用max函数-

select hiredate 
from emp 
where hiredate < ( select max(hiredate) 
                   from emp 
                   where mgr= (select e.empno 
                               from emp e 
                                where e.ename='KING')); 
 类似资料:
  • 我试图选择一个拥有最年长员工的经理的名字和姓氏,但是我遇到了一些问题,因为每当我运行这个: 因为where子句设置为查找所有员工,所以它返回所有员工,如果我将其更改为manager,则返回所有经理。我理解为什么会这样,但我真的不知道如何解决我的问题。 我希望结果集返回经理的名字和姓氏以及他们最年长的员工的日期。 我觉得这与我的表是如何设置的无关,因为在我的情况下我无法更改它们,更重要的是我如何编写

  • 我在一次采访中被问到: 给定下属和经理,构造一个数据结构(或使用现有的数据结构),然后实现方法,以便它打印总的直接和间接报告。 我告诉我,我将通过构建一个图来解决它,然后计算每个顶点的in度,我告诉它时间复杂度为O(ve)。然后我被要求用计算机解决这个问题

  • 我们有一个emp表,其中包含empno、ename、job、mgr、hiredate、sal、comm、deptno列 我试过了 我的输出是每个值为1的经理的姓名我们如何输出员工最多的经理的姓名?

  • 早上好,我被分配了一个任务:将佣金雇员类重写为雇员的子类。佣金雇员应该只包含超类雇员中未声明的实例变量和方法。佣金雇员的构造函数应该调用雇员的构造函数,佣金雇员的toString方法应该调用雇员的toString方法。创建一个驱动程序类来测试你的新佣金雇员类。提示用户输入名字、姓氏、社会保险号、总销售额和佣金率并创建一个佣金雇员对象,使用toString方法打印其信息。我似乎遇到的问题是类佣金雇员

  • 嗨,我有两个班,员工和部门。我的主要功能是读取一个。txt文件,填写员工姓名、工资、部门和职位。我的员工班只是一个有成就感和有成就感的人。为了代表员工,我制作了一份ArrayList列表,我不确定如何找到每个部门的最低工资。为了找到最高工资,我在我的系课上这样做了。 但我不知道怎样才能拿到最低工资。我的想法是从每个部门获得一名员工的工资,并以此作为工作的起点 但是我意识到我不知道该怎么办。我能得到

  • 有两张桌子: 问题是如何找到哪个经理支付给他的员工的平均工资(+奖金)最高?