Hiển thị kết quả từ 1 đến 8 / 8
Chủ đề: Query_SQL
-
09-08-2002 08:23 #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)
-
11-08-2002 11:32 #2
Registered User
- 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.
-
12-08-2002 08:28 #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.
-
12-08-2002 09:53 #4
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
-
12-08-2002 10:39 #5
Registered User
- 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)
-
12-08-2002 11:06 #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)
-
25-08-2002 17:44 #7
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)
-
14-01-2010 01:45 #8
Registered User
- 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
)


Quote
Bookmarks