VD: Xây dựng CSDL Quản lý lương cán bộ một cơ quan có cấu trúc như sau :
Yêu cầu :
- Thiết kế cấu trúc các bảng một cách phù hợp : kiểu dữ liệu các trường;
trường khoá; thuộc tính Lookup và các thuộc tính khác;
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu cho các quan
hệ;
chuc vu
| ||
Mã chức vụ
|
Tên chức vụ
|
Phụ cấp chức vụ
|
GD
|
Giám Đốc
|
900000
|
NV
|
Nhân Viên
|
500000
|
PGD
|
Phó Giám Đốc
|
800000
|
PP
|
Phó Phòng
|
600000
|
TP
|
Trường Phòng
|
700000
|
phong ban
| |
Mã phòng ban
|
Tên phòng ban
|
KD
|
Kinh Doanh
|
KH
|
Khác
|
KT
|
Kỹ Thuật
|
SX
|
Sản Xuất
|
+ 4 phòng ban;
+ 5 loại chức vụ;
+ 20 hồ sơ cán bộ.
Thiết kế Query
Câu 1: Hãy tính và in ra bảng lương của cơ quan bao gồm các thông tin: Hoten, ngaysinh, tenchucvu, tenphongban, luongchinh, phucapcv, dangphi, congdoanphi, thuclinh.
Trong đó:
Luongchinh = hesoluong * 290000
Dangphi = 20,000 với những ai là Đảng viên
Congdoanphi = 5%Luongchinh với những ai đã vào công đoàn
HD:
B1: Query/New/Design Wiew
B1: Query/New/Design Wiew
B1 Chọn tất cả 3 bảng: can bo, chuc vu, phongban
Tại hàng Field:
Ø luongchinh: [hesoluong]*29000
Ø dangphi: IIf([ladangvien]=Yes,"20000","0")
Ø congdoanphi: IIf([vaocongdoan]=Yes,0,05*[luongchinh],"0")
Ø thuclinh:[luongchinh]+[phucapcv]
Cấu trúc hàm IIF như sau:
a. Hàm iif đơn giản:
IIF([tên trường]=<điều kiện>,<lệnh đúng>,<lệnh sai>)
b. Hàm IIF lồng nhau:
IIF([tên trường 1 ]=<điều kiện 1 >,<lệnh đúng 1>, IIF([tên trường 2]=<điều kiện2>,<lệnh đúng2>… IIF([tên trường n]=<điều kiện n>,<lệnh đúng n>,<lệnh sai>)
kết quả:
Câu 2: Hãy đưa ra danh sách các cán bộ là Đảng viên mà chưa vào công đoàn?
HD:
HD:
Tại cột ladangvien dòng Criteria gõ yes à nghĩa là theo như đã khai báo ban đầu thuộc tính yes/no chọn tick vào ô ladangvien = yes, máy ngầm hiểu là yes và ngược lại ko tick vào máy hiểu là No.
Câu 3: Hãy lọc ra danh sách cán bộ của một phòng ban nào đó, tên phòng ban được nhập từ bàn phím khi query được kích hoạt;
B1: Query/New/Design Wiew
Câu 4: Hãy lọc ra danh sách cán bộ là Đảng viên và có thực lĩnh lớn hơn một số nào đó- được nhập từ bàn phím khi query được kích hoạt;
Dùng Bảng cau1 là bảng được lấy ở query câu 1.
Câu 5: Hãy lọc ra danh sách cán bộ mà năm sinh rơi vào trong một khoảng năm nào đó được nhập vào từ bàn phím. Ví dụ: khi kích hoạt query, Access yêu cầu nhập vào khoảng năm sinh từ năm nào, đến năm nào. Khi đó query sẽ lọc ra danh sách các cán bộ thoả mãn điều kiện đó;
Câu 6: Lọc ra danh sách cán bộ có tên được nhập vào từ bàn phím khi kích hoạt query. Ví dụ: khi query kích hoạt sẽ hỏi: Gõ vào tên cần xem? Sau khi gõ vào một tên (có thể cả họ hoặc cả họ và tên), máy tính sẽ lọc ra danh sách cán bộ thảo mãn điều kiện;
HD
HD
Câu 7: Lọc ra danh sách cán bộ đến tuổi nghỉ hưu, biết rằng điều kiện nghỉ
hưu xác định như sau:
- Là Nam giới, tuổi >=60
Kết quả :
HD: Ta làm như sau: Chọn trường gioitinh them 2 trường Là Đảng viên và Chưa vào Đảng, gõ công thức nhu hình dưới. Ở đây Chưa vào Đảng: IIf([ladangvien]=No,1), vì sao ta cho điều kiện đúng là 1 vì là cho ra kết quả là một biến bất kỳ cho máy tính đếm mà thôi, thực ra ở chỗ 1 có thể là kí tự hoặc số đều được( nếu là ký tự thì chú ý là nó phải nằm trong “ ” )
Để xuất hiện dòng Total ta vào view\totals hoặc click
Để xuất hiện dòng Total ta vào view\totals hoặc click
Câu 9: Hãy đưa ra bảng tổng hợp tổng số cán bộ theo từng loại chức vụ của
HD: Các bước làm như sau:
- Phân tích đề : Như đề thì máy tính sẽ đếm số cán bộ trong từng phòng ban và tính tổng cán bộ.
- Sử dụng Crosstab Query (vào Query/ Crosstab Query) để giải quyết tình huống trên.
+ Chú ý những trường nào hiện thị thì không thể đếm và ngược lại. Ví dụ hiển thị tên phòng ban gồm Kinh doanh, Kỹ thuật, sản xuất, khác thì không thể đếm trường tenphongban mà ta đếm trường làm khóa chính của nó tức là phongbanID, tương tự ta đếm tổng số cán bộ. (Xem hình dưới)
Câu 10: Đưa ra bảng tổng hợp về chức vụ theo giới tính như sau:
HD: Tương tự như câu 9 ta có: chú ý để xuất hiện Nam, Nữ thêm trường giới tính
Giới tình: IIf([gioitinh]=Yes,"Nam","Nữ")
Câu 11: Đưa ra bảng tổng hợp lương theo từng phòng ban như sau:
HD: Ta làm như sau:
B1: chọn bảng phong ban, chọn query tạo ở câu 1
B2: Tạo liên kết phongbanID
B3: sử dụng Crosstab Query truy vấn như hình dưới.
Câu 12. Xuất ra DSCB có ngày sinh từ ngày 01/01/1965 đến ngày 01/01/1985 và đồng thời những cán bộ trên cùng họ Nguyễn.
HD: Xây dựng Query như sau:
Tìm CB họ Nguyễn: Like "Nguyễn *"
Tìm CB có ngày tháng năm sinh theo đề: >#01/01/1965# And <#01/01/1985#
Hoặc là Between #01/01/1965# And #01/01/1985#
Kết quả:
Một số dạng bài tập trong phần Query và lời giải bởi nhatthienkt.
Chia sẻ trên BLOG của nhatthienkt'Blog
Chia sẻ trên BLOG của nhatthienkt'Blog
Chúc các bạn học tốt và vui vẻ!
Một số lưu ý khi bình luận
Vui lòng viết comment Tiếng Việt có dấu.
Bạn có thể gửi mail trực tiếp qua địa chỉ: nhatthienkt.s@gmail.com hoặc aboutvanphongit@gmail.com
Lưu ý những nhận xét với mục đích backlink không liên quan đến nội dung bài viết sẽ bị xóa bỏ