2016-07-05 5 views
0

次のデータを持つテーブルがあります。 ID、日付、タイプはすべて主キーです。 IDは人、タイプは作業タイプです。最後の日付の同じユーザーのSQLクエリ

id  date  Type 
-------------------------- 
6 | 2011 | 2 
6 | 2012 | 2 
6 | 2012 | 3 
6 | 2012 | 5 
7 | 2013 | 1 
7 | 2016 | 1 
etc.. 

同じタイプの同じIDに対して同じタイプの行がある場合は、差異タイプのID6と最後の日付を表示するクエリを作成します。 結果はその結果と同じになります。

id  date  Type 
-------------------------- 
6 | 2012 | 2 
6 | 2012 | 3 
6 | 2012 | 5 
7 | 2016 | 1 
etc.. 
あなたは相関サブクエリでこれを行うことができ
+0

この猫を肌にする複数の方法がありますが、どの方法があなたを持っています試した? – MageeWorld

答えて

0

select t.* 
from t 
where t.date = (select max(t2.date) from t t2 where t2.id = t.id and t2.type = t.type); 
+0

ありがとうございますが、これは3種類の作業タイプの人は表示されず、トウタイプの作業のみが表示されます。 トピックを更新しました。 – Alex

+0

作業しました。追加するだけです(ここで、t2.id = t.idとt2.type = t.type) – Alex

0

それを行う別の方法:

select a.id, b.date, a.type 
from 
(
    select distinct id, type 
    From Test1 
) a 
INNER JOIN 
(
    select distinct id, max(date) date 
    From Test1 
    group by id 
) b 
on a.id = b.id 
関連する問題