方法SELECT最新の日付のcolumn2を持ち、nullではないcollumn1レジストリ?最新の値を含むSELECT行
たとえば、私は5行目(employee3)を返す必要があります。これについて
方法SELECT最新の日付のcolumn2を持ち、nullではないcollumn1レジストリ?最新の値を含むSELECT行
たとえば、私は5行目(employee3)を返す必要があります。これについて
どのように?
SELECT Employee, MAX(Resignation) Resignation
FROM table
WHERE Resignation IS NOT NULL
GROUP BY Employee
それとも、あなたのテーブルはあなたが示されてきたよりも多くの列、
SELECT a.*
FROM table a
JOIN (
SELECT Employee, MAX(Resignation) Resignation
FROM table
WHERE Resignation IS NOT NULL
GROUP BY Employee
) b ON a.Employee = b.Employee AND a.Resigation = b.Resignation
を持っている場合、これは、「極端な値と詳細行を探し、」クエリパターンです。質問の再解釈を更新
:
私はあなたが意味を考える:
戻り、現在辞任されているすべての従業員のための最も最近の辞任日付。現在辞任されているのは、「その従業員のために退任日が設定されたすべての従業員レコードを持つ」と定義されています。退職日がNULLの単一の従業員レコードは、その従業員がまだ雇用されていることを意味します。彼らが辞任した回数にかかわらず!
これはexists
でcorrelated subquery
を使用して実行できます。 およびmax
と一緒にgroup by
まず、辞任されていないすべての従業員のリストを取得します。 次に、私たちはフルセットを、辞任されていない従業員のセットと比較し、従業員が辞任されていない従業員のリストにいないままにしておき、次に従業員によってグループ化して最大退職を得る。 CooelationがA.EMPLOYEEとしてラインWHERE A.Employee = B.Employee
で発生
SELECT Employee, Max(Resignation) Resignation
FROM Table A
WHERE NOT EXISTS (SELECT 1
FROM Table B
WHERE A.Employee = B.Employee
and B.Resignation is null) --Cooelation occurs here Notice how A
GROUP BY Employee
1レベルは、table B
からTABLE A
を除去テーブルを参照します。
また、適用結合でもこれを行う方法があることを確かめてください。しかし私はその構文にまだ慣れていません。