2011-01-27 329 views
7

Estoy luchando con una consulta para extraer las entradas más recientes. Tengo una tabla Notes que contiene las siguientes columnas:SQL Seleccionar la fecha máxima con múltiples registros

BusinessDate 
ReportGuid 
NoteGuid 
Note 
NoteDate 
NoteAddedBy 

El BusinessDate, ReportGuid y NoteGuid son el PK sobre la mesa. Esta tabla permite que un ReportGuid específico tenga múltiples notas por día. Tengo otra tabla que contiene información de informe adicional que se unirá y se mostrará para los usuarios. Estoy tratando de extraer y mostrar solo la entrada de nota más reciente para cada ReportGuid.

Intenté usar Max (NoteDate) pero eso solo me da la última nota agregada a la tabla, no la última nota para cada ReportGuid.

Cualquier ayuda sería apreciada.

Gracias

ACTUALIZACIÓN:

gracias por la ayuda:

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 

Respuesta

10

Es necesario seleccionar y group by ReportGuidMax(NoteDate). Eso seleccionará el máximo de cada grupo.

+0

Eso funciona si solo quiero ReportGuid y NoteDate, pero necesito todas las columnas de datos. SELECT ReportGuid, Max (NoteDate) Como NoteDate \t \t DE T.SM_T_Report_Notes \t \t GROUP BY ReportGuid – Taryn

+0

@bluefeet: Oh, ok. En ese caso, simplemente puede SELECCIONAR max (ReportGuid), Max (NoteDate) como NoteDate FROM T.SM_T_Report_Notes GROUP BY ReportGuid –

Cuestiones relacionadas