2011-01-27 43 views
7

Tôi đang vật lộn với truy vấn để kéo các mục nhập gần đây nhất. Tôi có một bảng Ghi chú có chứa các cột sau:SQL Chọn ngày tối đa với nhiều bản ghi

BusinessDate 
ReportGuid 
NoteGuid 
Note 
NoteDate 
NoteAddedBy 

BusinessDate, ReportGuid và NoteGuid là PK trên bàn. Bảng này cho phép ReportGuid cụ thể có nhiều ghi chú mỗi ngày. Tôi có một bảng khác chứa thông tin Báo cáo bổ sung sẽ được nối và hiển thị cho người dùng. Tôi đang cố kéo và chỉ hiển thị mục nhập ghi chú gần đây nhất cho mỗi ReportGuid.

Tôi đã thử sử dụng Max (NoteDate) nhưng điều đó chỉ nhận được tôi ghi chú mới nhất được thêm vào bảng chứ không phải ghi chú mới nhất cho mỗi ReportGuid.

Mọi trợ giúp sẽ được đánh giá cao.

Cảm ơn

UPDATE:

cảm ơn vì sự giúp đỡ:

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 

Trả lời

10

Bạn cần phải group by ReportGuid và chọn Max(NoteDate). Điều đó sẽ chọn tối đa của mỗi nhóm.

+0

Điều đó có tác dụng nếu tôi chỉ muốn ReportGuid và NoteDate nhưng tôi cần tất cả các cột dữ liệu. CHỌN ReportGuid, Max (NoteDate) Như NoteDate \t \t TỪ T.SM_T_Report_Notes \t \t GROUP BY ReportGuid – Taryn

+0

@bluefeet: Oh, ok. Trong trường hợp đó bạn có thể chỉ cần SELECT max (ReportGuid), Max (NoteDate) như NoteDate FROM T.SM_T_Report_Notes GROUP BY ReportGuid –

Các vấn đề liên quan