ORACLE中emp和dept表的SQL查询

ORACLE中emp和dept表的SQL查询,sql,oracle,Sql,Oracle,这是参考ORACLE的emp和dept表。我想要一个输出表来显示dname、deptno、1981年和1982年雇佣的员工的总工资。我想要以下样式的输出 Deptno | Dname | TotalSal|u 1981 | TotalSal|u 1982 我可以分别找到1981年和1982年雇佣的员工的总工资。但如何将它们组合在一起以获得以上列的输出呢 谢谢您可能希望加入1981年和1982年雇佣的员工,然后有条件地求和: select d.deptno, d.dname, s

这是参考ORACLE的emp和dept表。我想要一个输出表来显示dname、deptno、1981年和1982年雇佣的员工的总工资。我想要以下样式的输出

Deptno | Dname | TotalSal|u 1981 | TotalSal|u 1982

我可以分别找到1981年和1982年雇佣的员工的总工资。但如何将它们组合在一起以获得以上列的输出呢


谢谢

您可能希望加入1981年和1982年雇佣的员工,然后有条件地求和:

select 
  d.deptno, 
  d.dname, 
  sum(case when extract(year from hiredate) = 1981 then sal end) as totalsal_1981,
  sum(case when extract(year from hiredate) = 1982 then sal end) as totalsal_1982
from dept d 
join emp e on e.deptno = d.deptno and extract(year from e.hiredate) in (1981,1982)
group by d.deptno, d.dname;

如果要显示这些年中没有雇佣员工的部门,请使用左外联接。

能否给出表结构emp和deptselect deptno,dname,SUMPALARY from EMPLOYEE,deptno=DEPTIONS.deptno和hiredate in 1981年,1982年deptno的分组,DNAMEMP table-empnonum,enamevarchar,jobvarchar,hiredatedate,salnum,deptnonum DEPT Table-deptnonum,dnamevarchar,locvarchar@That JeffSmith您的sql将为1981-182年雇佣的员工的总工资提供一克朗。我想为1981年和1982年在两个不同的专栏中雇佣的员工做一个总结。有几种方法可以完成这项任务。这只是其中之一。如果你需要其他选择,那么告诉我。嗨,托尔斯滕,非常感谢。现在我想更具体地谈谈这个查询。如果我想为一年中的某个特定月份(如1981年1月和1982年1月)查找相同的信息,那么语法是什么?我还想计算这两列的比率,并在另一列“比率”中显示显示。你得到的月份与你得到的年份相同:从e.hiredate中提取的月份=7。您还可以使用TO_CHAR:where TO_charhiredate,'yyyyymm'='198107'。关于比率:选择deptno、dname、totalsal_1981、totalsal_1982、totalsal_1981/totalsal_1982作为起始比率;。嗨,我能和你一起工作一个月了。但得到的p]误差与比率有关。因为它给出的错误是totalsal_1981不存在。我的答案中的查询包含一个字段totalsal_1981。您要将我评论中的查询替换为回答查询。因此,有一个领域totalsal_1981需要合作。必须是复制粘贴错误,或者您重命名了应答查询中的字段。