2016-03-29 33 views
-1

私はSQL Serverでレポートを作成していますが、それは正しいと思われます。一意のJNJobIDの最新のJNNoteを自分のジョブテーブルに追加するにはどうすればよいですか?最新の別名を選択してください

Select 
    JobNotesID 
    ,JNJobID 
    ,JNDate  
    ,JNNote 
From [JobNotes] Left JOIN Jobs ON [JobNotes].JNJobID = Jobs.JobID 

ジョブズ表

JobID ProjectNum  
6972 PN1 
6973 PN2 
6974 PN3 

JobNotes表

JobNotesID JNJobID JNDate      JNNote  
11800  6972 2016-03-15 00:00:00.000  Example 1 
11874  6972 2016-03-17 00:00:00.000  Example 2 
12181  6972 2016-03-25 00:00:00.000  Example 3 
12006  6973 2016-03-21 00:00:00.000  Example 4 
11961  6974 2016-03-18 00:00:00.000  Example 5 
11924  6974 2016-03-17 00:00:00.000  Example 6 

はあなたが分析バージョン0を使用することができ

JobID ProjectNum   JNNote 
6972  PN1    Example 3 
6973  PN2    Example 4 
6974  PN3    Example 6 
+0

これは非常に頻繁に質問され、[タグ:最大-N-あたり-グループ]としてタグ付けされ、適切な重複がたくさんありますが、重複したターゲットは、ソリューションを持っており、あなたに合う必要があるように私が選ぶ一つは。 – jpw

+0

ありがとうございます。私はまだ、JNJobIDに基づいてグループごとの最大の結果をJobIDを持つJobs Tableにリンクする別のクエリに結合する方法の解決策を探しています。この時 –

+0

ルック:http://www.sqlfiddle.com/#!6/af00e/1 – jpw

答えて

-1

を返しますf max()を使用すると、各IDの最新の行を認識するのに役立ちます。同じ日に同じジョブ用の2つのノートは決して存在しないことを仮定しない

select 
    n.JNNote 
from (
    select *, max(JNDate) over (partition by JNJobID) as maxDate 
    from JobNotes 
) n 
where n.JNDate = n.maxDate 

:それは、CTEまたはインラインビューが必要です。

関連する問題