Tôi đang cố viết truy vấn cho SQL Server 2005 nhưng tôi không thể tìm ra cách thực hiện. Tôi có một bảng với các lĩnh vực sau:Truy vấn SQL bán khó hiểu
MessageID int
CategoryID int
tinyint ưu tiên
messagetext NVARCHAR (MAX)
Tôi cần một truy vấn mà sẽ trở lại * cho mỗi hàng có ưu tiên cao nhất trong Danh mục. Ví dụ, nếu tôi có các dữ liệu sau:
MessageID, CategoryID, ưu tiên, messagetext
1, 100, 1, Lỗi # 1234 xảy ra
2, 100, 2, Lỗi # 243 xảy ra
3 , 100, 3, Lỗi # 976 xảy ra
4, 200, 4, Lỗi # 194 xảy ra
5, 200, 1, Lỗi # 736 xảy ra
6, 300, 3, Lỗi # 54 xảy ra
7, 300 , 2, Lỗi # 888 xảy ra
thì kết quả sẽ là:
MessageID, CategoryID, ưu tiên, messagetext
3, 100, 3, Lỗi # 976 xảy ra
4, 200, 4, Lỗi # 194 xảy ra
6, 300, 3, Lỗi số 54 xảy ra
Lưu ý rằng nó trả về một hàng cho mỗi danh mục và là hàng có mức độ ưu tiên cao nhất cho Danh mục đó.
Có ai có thể cho tôi biết cách tôi có thể viết truy vấn này không?
Bạn có thể viết nó xa dễ dàng hơn bằng chức năng phân tích trong Oracle. :) – TheSoftwareJedi
Hoặc sử dụng các chức năng phân tích trong SQL Server và không phải chuyển sang Oracle. – cfeduke