1
私は3つの共通フィールドしかない2つのテーブルを持っています。 は、私は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
私のクエリはiが取得
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が役立ちます。 –
これまでに同じことを試しましたが、仕事をしています –