Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1

    Lấy mức lương gần nhất

    Mình có 1 bảng dữ liệu như sau:

    MaCn Thang Mucluong
    01 1/5/2011 75.000
    01 1/6/2011 80.000
    01 1/7/2011 85.000
    02 1/6/2011 70.000

    Mình muốn viết câu truy vấn SQL Server để lấy về mức lương gần nhất, kết quả trả về sẽ như sau:

    MaCn Thang Mucluong
    01 1/7/2011 85.000
    02 1/6/2011 70.000

    Nhưng viết không ra được, bạn nào biết xin chỉ giúp. Mình xin cám ơn

  2. #2
    Mã:
    SELECT TOP 2 ... ORDER BY Thang DESC

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi huuhung
    [CODE]SELECT TOP 2 ... ORDER BY Thang DESC
    Viết thế này không được rồi bạn.
    Thứ nhất là bảng dữ liệu không phải chỉ có vài dòng như ví dụ mình gởi mà có rất nhiều, nên không thể dùng top 2
    Thứ 2: nếu sort theo thang vào dùng top như vậy thì nó có thể sẽ lấy nhiều dòng của cúng 1 Macn

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    ;WITH _v AS (    SELECT MaCn, Thang, Mucluong,     ROW_NUMBER() OVER (PARTITION BY MaCn ORDER BY MaCn, Thang DESC) AS Id     FROM yourTable)SELECT * FROM _v WHERE id = 1

  5. #5
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    Cám ơn bạn nhe, chạy được rồi, mặc dù mình không hiểu mấy câu SQL này, hình như hơi nâng cao, hjhj.
    Thanks bạn.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •