2011-01-27 15 views
7

Sono in difficoltà con una query per estrarre le voci più recenti. Ho una tabella prende atto che contiene le seguenti colonne:SQL Select Max Date with Multiple records

BusinessDate 
ReportGuid 
NoteGuid 
Note 
NoteDate 
NoteAddedBy 

Il BusinessDate, ReportGuid e NoteGuid sono PK sul tavolo. Questa tabella consente a un ReportGuid specifico di avere più note al giorno. Ho un'altra tabella che contiene informazioni aggiuntive del report che verranno aggiunte e visualizzate per gli utenti. Sto cercando di visualizzare e visualizzare solo la voce della nota più recente per ogni ReportGuid.

Ho provato a utilizzare Max (NoteDate) ma mi sta solo facendo ottenere l'ultima nota aggiunta alla tabella non la nota più recente per ogni ReportGuid.

Qualsiasi aiuto sarebbe apprezzato.

Grazie

UPDATE:

grazie per l'aiuto:

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 

risposta

10

È necessario group by ReportGuid e selezionare Max(NoteDate). Questo selezionerà il massimo di ogni gruppo.

+0

Che funziona se desidero solo ReportGuid e NoteDate ma ho bisogno di tutte le colonne di dati. SELEZIONA ReportGuid, Max (NoteDate) Come NoteDate \t \t DA T.SM_T_Report_Notes \t \t GROUP BY ReportGuid – Taryn

+0

@bluefeet: Oh, ok. In tal caso, è sufficiente selezionare SELECT max (ReportGuid), Max (NoteDate) As NoteDate FROM T.SM_T_Report_Notes GROUP BY ReportGuid –