Oracle Sql在匹配存在时检索总和

Oracle Sql在匹配存在时检索总和,sql,oracle,Sql,Oracle,需要Sql帮助 Totalcount=员工+人数 列名是这样的。这是两个我们正在尝试加入的随机表。 Imp:表1中存在的内容可能不存在于表2中。表2中存在的内容也可能不存在于表1中。因此,如果两者都存在,则需要求和总数,如果不是单个值,则可以使用联合所有值和聚合: select entity, sum(cnt) total_count from ( select entity, cnt from table2 union all select company, employee

需要Sql帮助

Totalcount=员工+人数 列名是这样的。这是两个我们正在尝试加入的随机表。
Imp:表1中存在的内容可能不存在于表2中。表2中存在的内容也可能不存在于表1中。因此,如果两者都存在,则需要求和总数,如果不是单个值,则可以使用
联合所有值和聚合:

select entity, sum(cnt) total_count
from (
    select entity, cnt from table2
    union all select company, employees from table1
) t
group by entity
order by entity

要使其正常工作,您需要两个表中的列具有相同的数据类型,即
table2。实体
应具有与
table1.company'
(以及
table2.cnt
table1.employees
)相同的数据类型。如果数据类型不匹配,则必须明确地将列强制转换为adujst。

您可以使用
联合所有
和聚合:

select entity, sum(cnt) total_count
from (
    select entity, cnt from table2
    union all select company, employees from table1
) t
group by entity
order by entity

要使其正常工作,您需要两个表中的列具有相同的数据类型,即
table2。实体
应具有与
table1.company'
(以及
table2.cnt
table1.employees
)相同的数据类型。如果数据类型不匹配,则必须明确地将列强制转换为adujst。

一个方法使用
完全联接:

select coalesce(t1.company, t2.entity) as company,
       coalesce(t1.employees, 0) + coalesce(t2.count, 0) as totalcount
from table1 t1 full join
     table2 t2
     on t1.company = t2.entity

一种方法使用
完全联接

select coalesce(t1.company, t2.entity) as company,
       coalesce(t1.employees, 0) + coalesce(t2.count, 0) as totalcount
from table1 t1 full join
     table2 t2
     on t1.company = t2.entity