1
我有两个只有3个公共字段的表。 我写了下面的查询回暖与最新的日期丢失的数据如表1在Oracle中选择最近日期的缺失记录
Employee Category Date_Field First_Name Last_Name Status Result
100 Type1 30/08/2010 A B Present Good
200 Type1 1/09/2010 C D Hello Alt
100 Type3 30/09/2010 A B
100 Type1 30/09/2012 A B
Employee Category Date_Field
100 Type1 03/11/2016
100 Type3 30/09/2010
100 Type4 11/10/2010
200 Type3 12/12/1989
我的查询是
with x1 as (SELECT Employee,Category,Date_Field,First_Name,Last_Name,Status,Result,' ' as Somefield from table 1
where not exists
(select 1 from table2
where table1.employee=table2.employee and table1.category = table2.Category
and table1.Date_Field = table2.Date_Field)),
x2 as (select Employee,Category,Max(Date_Field) as DateField from x1 group by Employee)
select x1.Employee,x1.Category,x1.Date_Field,x1.First_Name,x1.Last_Name,x1.Status,x1.Result,x1.Somefield from x1,x2
where x1.Employee = x2.Employee and x1.Date_Field=x2.DateField and x1.Category=x2.Category
order by x1.Employee;
的电流Ouptput我得到的是
Employee Category Date_Field First_Name Last_Name Status Result
100 Type1 30/09/2012 A B
200 Type1 1/09/2010 C D Hello Alt
灿我得到这个查询修改,以便如果在表2中有最新日期和类别的同一雇员的记录,我的输出不应该有该记录。
所以预期输出是
Employee Category Date_Field First_Name Last_Name Status Result
200 Type1 1/09/2010 C D Hello Alt
你的帮助是非常赞赏
Maheshwaran如果我删除日期字段它将返回表1中不是我不需要的所有缺少的数据。我需要检查每个类别员工的最新记录是否来自表1,如果是,我需要填充它或忽略 –
更新后的SQL应该有帮助。 –
之前尝试过,但它做的工作 –