mysql - 子查询连接失败

标签 mysql sql teradata

我正在尝试找出目标中丢失的记录。我需要记录丢失的员工。

假设我的输入源为

1,Jack,type1,add1,reg3,..,..,..,
2,Jack,type2,add1,reg3,..,,.,..,
3,Jack,type3,add2,reg4,..,.,..,.,
4,Rock,,,,,,,,

我的输出为

1,Jack,type1,add1,reg3,..,..,..,
4,Rock,,,,,,,,

我有其他员工的 1000 行,并且在目标中我没有任何重复记录。 我需要出现在源和目标中的员工出现不同的情况 意味着例如在上面的示例数据中,我在源中有 3 个 jack 条目和 1 个 Rock 条目

在目标中,我只有 Jack 的条目和 Rock 的条目

我正在运行下面的查询,所需的输出是 Jack,3

我怎样才能得到它。我在下面的查询中遇到错误

select A.EMP_NUMBER,A.CNT1
from

(select EMP_NUMBER,count(EMP_NUMBER) as CNT1
 from EMPLOYEE_SOURCE
 group by EMP_NUMBER ) as A

INNER JOIN 

 (select B.EMP_NUMBER,B.CNT2
  from (select EMP_NUMBER,count(EMP_NUMBER) as CNT2  
        from EMPLOYEE_TARGET 
        group by EMP_NUMBER )as B )

 ON (A.EMP_NUMBER = B.EMP_NUMBER)

 where A.CNT1 != B.CNT2

请帮忙。

最佳答案

为什么不获取按姓名分组时两个表中行数不同的员工(我想 Emp_Number 是包含姓名的字段,如果问题中的查询返回的话)

SELECT s.Emp_Number, Count(s.Emp_Number)
FROM   EMPLOYEE_SOURCE s
       LEFT JOIN EMPLOYEE_TARGET t ON s.Emp_Number = t.Emp_Number
GROUP BY s.Emp_Number
HAVING Count(s.Emp_Number) != Count(t.Emp_Number)

关于mysql - 子查询连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23809768/

相关文章:

PHP 从 MYSQL 导出到 excel

mysql - 为什么MySQL导入比导出慢?

mysql - SQL - 是否可以查找具有相同分组依据的等于 0 的总和?

sql - 在 SQL Server 6.5 中选择 TOP 1

sql - 单个 ID 上的列拆分总和

mysql - 当网站繁忙时如何阻止 apache2 崩溃?

c# - 如何将查询结果插入到mysql数组中

mysql - 在给定日期范围内对相同组合进行计数

ubuntu - 让 odbc 驱动程序与适用于 linux 的 windows 子系统一起工作

sql - Teradata:如何在存储过程中引发错误