Diễn Đàn Tin Học

Hiển thị kết quả từ 1 đến 8 / 8

Chủ đề: Query_SQL

  1. #1
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts

    Query_SQL

    Tôi có 1 câu query nhưng không biết làm như thế nào, các bạn hãy giúp tôi với
    Cho CSDL có quan hệ NhanVien(MaNV,Thang,Luong) trong đó PrimaryKey={MaNV,Thang}
    Làm thế nào ta liệt kê được nhân viên nào có Lương luôn tăng.(giả sử Lương của nhân viên có tăng có giảm)
    Quote Quote

  2. #2
    Tham gia
    11-08-2002
    Location
    vninformatics.com
    Bài viết
    26
    Like
    0
    Thanked 0 Times in 0 Posts
    Chời, hỏi gĩ mà khó dzữ :-(
    Thử cái này xem:
    SELECT * FROM nhanvien nv
    WHERE
    NOT EXISTS (SELECT * FROM nhanvien nv2
    WHERE
    nv2.msnv = nv.msnv AND
    nv2.thang > nv.thang AND
    nv2.luong <= nv.luong)

    Bạn có thể chỉnh lại câu Query cho thích hợp:
    - nv2.luong <= nv.luong: lương phải tăng, tháng sau hơn tháng trước (bằng cũng không được).
    - xem như thang là số có thể so sánh được, chứ nếu mà bạn dùng chữ như Tháng một, Tháng hai...thì chịu.

  3. #3
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    chào bạn NBThanh
    Cám ơn bạn đã nhiệt tình trả lời cho thắc mắc của tôi, nhưng với cách hướng dẫn trên không dẫn đến 1 kết quả đúng. Lúc trước, tôi cũng đã từng thử như cách bạn đề nghị, mặc dù về logic thì nghe có vẻ đúng nhỉ. Mong cách giải quyết khác.

  4. #4
    Tham gia
    17-07-2002
    Location
    Nơi xuất phát
    Bài viết
    562
    Like
    0
    Thanked 0 Times in 0 Posts
    Anh NBThanh à.Cho em mail đi,em có một chút thắc mắc muốn hỏi anh
    Cám ơn anh

  5. #5
    Tham gia
    22-07-2002
    Location
    HCM city
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    Thay đổi câu của NBThanh 1 chút:
    Nên dùng not in tại vì not exist thì cho tất cả field bạn select.

    SELECT * FROM nhanvien nv
    WHERE nv.msnv NOT IN
    (SELECT * FROM nhanvien nv1,nhanvien nv2
    WHERE nv2.msnv = nv1.msnv AND
    nv2.thang > nv1.thang AND
    nv2.luong <= nv1.luong)

  6. #6
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn bạn mimi, câu giải đáp của bạn rất tuyệt (nhưng phải sửa lại 1 chút )
    SELECT * FROM nhanvien nv
    WHERE nv.msnv NOT IN
    (SELECT nv1.msnv FROM nhanvien nv1,nhanvien nv2
    WHERE nv2.msnv = nv1.msnv AND
    nv2.thang > nv1.thang AND
    nv2.luong <= nv1.luong)

  7. #7
    Tham gia
    24-08-2002
    Bài viết
    59
    Like
    0
    Thanked 0 Times in 0 Posts
    Chắc có lẽ câu query cuối cùng là đúng nhưng CSDL như vậy liệu có ổn không? (Năm nay thì đúng, nhưng năm sau thì vấn đề chắc sẽ phát sinh đấy- Trùng khóa chẳng hạn)

  8. #8
    Tham gia
    18-09-2009
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    nản với các bác
    )

Bookmarks

Quy định

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •