2011-01-27 14 views
7

En son girişleri çekmek için bir sorgu ile uğraşmaktayım.SQL Çoklu Kayıtlı Maks Tarih Seç

BusinessDate 
ReportGuid 
NoteGuid 
Note 
NoteDate 
NoteAddedBy 

BusinessDate, ReportGuid ve NoteGuid masaya PK şunlardır: Aşağıdaki sütunları içeren bir Notes tablo var. Bu tablo, belirli bir ReportGuid'in günde birden çok notaya sahip olmasını sağlar. Kullanıcılar için eklenecek ve görüntülenecek ek Rapor bilgileri içeren başka bir tablo var. Her bir ReportGuid için yalnızca en yeni not girişini çekmeye ve görüntülemeye çalışıyorum.

Max (NoteDate) kullanmayı denedim, ancak bu yalnızca her bir ReportGuid için son not değil, tabloya eklenen en son notu almamı sağladım.

Herhangi bir yardım için teşekkür ederiz.

Teşekkür

GÜNCELLEME: Yardım için

teşekkürler:

SELECT N.Note, N.ReportGuid 
FROM Tracking.SM_T_Report_Notes N 
RIGHT OUTER JOIN 
    (
    SELECT ReportGuid, Max(NoteDate) As NoteDate 
    FROM Tracking.SM_T_Report_Notes 
    GROUP BY ReportGuid 
    ) AS ND 
    ON N.NoteDate = ND.NoteDate 

cevap

10

Sen group by ReportGuid gerekiyor ve Max(NoteDate) seçin. Bu, her grubun maksimumunu seçecektir.

+0

Yalnızca ReportGuid ve NoteDate'i istiyor, ancak tüm veri sütunlarına ihtiyacım varsa işe yarar. T.SM_T_Report_Notes GELEN NoteDate \t \t gibi SEÇ ReportGuid, Maks (NoteDate) \t \t GRUP ReportGuid – Taryn

+0

@bluefeet TARAFINDAN: Tamam, evet. Bu durumda, sadece SELECT max (ReportGuid), Max (NoteDate) olarak TIKLAYINIZ T.SM_T_Report_Notes GROUP BY ReportGuid –