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

Oracle sql-从两个不同的表中选择两个和之间的差异?

陈高寒
2023-03-14

假设我有两个表,我想计算它们的和差:

company1(
id INTEGER,
salary INTEGER
)

company2(
id INTEGER,
salary INTEGER
)

如何仅使用一个选择查询从每个员工中选择他们的SUM(工资)之间的差异?

例如:

SELECT 
(SELECT SUM(company1.salary) FROM company1 GROUP BY id) - (SELECT SUM(company2.salary) FROM company2 GROUP BY id) as diff_between_pay

最终结果将是这样的:

company1
id   salary  
1    40000
2    20000
3    50000

company2
id   salary
1    30000
2    15000
3    25000

end result differences:
id
1    10000
2    5000
3    25000

共有1个答案

赖诚
2023-03-14

您可以在select中执行此操作:

select (select sum(salary) from company1) - (select sum(salary) from company2) as diff_between_pay
from dual;

对于修改后的问题,请使用完全联接

select ( coalesce(c1.sums, 0) - coalesce(c2.sums, 0) ) as diff_between_pay
from (select id, sum(salary) as sums
      from company1
      group by id
     ) c1 full join
     (select id, sum(salary) as sums
      from company2
      group by id
     ) c2
     on c1.id = c2.id;
 类似资料:
  • 问题内容: 有这张桌子 和这个 我如何从表“项目”中选择所有行并显示字段“已删除”,即使在给定用户ID的情况下,即使“ MyList”中不存在itemID? 查询结果示例: 什么是查询,以便我可以得到该结果? 谢谢 问题答案: 我不确定这是否是最好的方法,但它会返回我一直在寻找的内容:

  • null 我什么也想象不到,有人来帮我吗? ----编辑---- @拉胡尔, 141  测试粉笔 ;   141        123 141  测试粉彩 ;   141        可见

  • 问题内容: 我的SQL Server数据库中有两个表。第一个是,第二个是。两个表中都有一列。 现在,我想从两个表中选择一个特定的值。 这就是我在做的 但是我的查询给出了错误。 问题答案:

  • 问题内容: 与oracle diff 相同:如何比较两个表?除了在MySQL。 假设我有两个表t1和t2,它们的布局相同,但是可能包含不同的数据。 区分这两个表的最佳方法是什么? 更准确地说,我正在尝试找出一个简单的SQL查询,该查询告诉我t1中某一行的数据是否不同于t2中相应行的数据 看来我不能使用相交也不能减去。当我尝试 我收到错误代码: [错误代码:1064,SQL状态:42000]您的SQ

  • 问题内容: 我有一个表()有以下记录: ,,,,,。 每次作业开始运行时,都会使用记录表中的记录。当作业完成运行时,将使用另一个记录添加到表中。 这两个记录有相同的,和 JOB_ID (这是由进程中运行作业时确定的-唯一的这2个记录)。 我想要一个查询,该查询将返回表中的所有这些记录对(按ID desc排序),但棘手的部分是我想将作业运行的时间()添加到“已完成”状态的记录中。 我怎样才能做到这一

  • 问题内容: 我有以下两个数组。我想要这两个数组之间的区别。也就是说,如何找到两个数组都不存在的值? 问题答案: 注意: 这个答案将返回的值是不存在的,它不会返回值不在。