我有一个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 )
这个查询给出了语法错误,请帮助我。
使用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 )
要让员工在过去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的员工编号的子查询是不相关的。这是一种友好的子查询。
改用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列表,我不确定如何找到每个部门的最低工资。为了找到最高工资,我在我的系课上这样做了。 但我不知道怎样才能拿到最低工资。我的想法是从每个部门获得一名员工的工资,并以此作为工作的起点 但是我意识到我不知道该怎么办。我能得到
有两张桌子: 问题是如何找到哪个经理支付给他的员工的平均工资(+奖金)最高?