bài tập query trong tin hoc access
Trang 1BÀI TẬP SỐ 2 ( BÀI TẬP MẪU CHUYÊN VỀ QUERY, CÓ PHÂN BIỆT LOẠI QUERY )
PHẦN I: TẠO TABLE, RELATIONSHIP VÀ NHẬP LIỆU
1 Hãy tạo cơ sở dữ liệu có các Table sau:
Table NHÂN VIÊN:
NHANVIEN(MSNV
(text,4),TENNV(text,40),NS(date/time),NgayVL(Date/Time),luong(Currency)) Table KHÁCH HÀNG:
KHACHHANG(MSKH(text,4),TENKH(text,40),DCHI(text,30),SODT(text,10)) Table MẶT HÀNG:
MATHANG(MSMH(text,4),TENMH(text,20),DVT(text,15))
Table HOÁ ĐƠN:
HOADON(MSHD(text,5),MSKH,MSNV,NGAYHD(Date/Time))
Table CHI TIẾT HOÁ ĐƠN:
CHITIETHD(MSHD,MSMH,SOLUONG(integer),DONGIA(Currency))
2 Hãy tạo mối quan hệ cho các Table này như hình bên dưới:
Chú ý đến các mối quan hệ như 1 - , 1 – 1
Trang 23 Nhập dữ liệu mẫu cho các Table trên và đặt tên theo qui định như bên dưới:
Tab_NHANVIEN
Tab_KHACHHANG:
K001 Tô Linh 23 An Dương Vương 8800256
K002 Ngô Thị Hoài 187 Lão Tử 8250103
K003 Võ Thanh Sơn 123 Trần Hưng Đạo 8844556
K004 Phạm Hùng 45 Sư Vạn Hạnh 8867906
K005 Lê Hưng Nguyên 99 Ngô Gia Tự 9987651
K006 Ngô Lâm Vĩ 234 Vĩnh Viễn 8899453
K007 Lê Ngọc Hân 10 Tản Đà 8998354
K008 Lê Thị Ngọc 24 Ký Con 8906542
K009 Võ Minh Vương 34/5 Huơng Lộ 2 8456723
K010 Trần Minh Trang 81 Đồng Khởi 8996754
Tab_MATHANG:
H001 Tôn Tấm H002 Thép Tấm H003 Ciment Bao H004 Sắt Thanh H005 Gạch men Đồng Tâm Mét vuông H006 Gạch men Italy Mét vuông H007 Gạch men DoTalia Mét vuông
N001 Trần Khánh Lan 01/01/1970 10/10/1995 2500000 N002 Võ Huy Long 10/10/1972 05/05/1996 2600000 N003 Ngô Thoại Mỹ 25/12/1971 01/10/1996 2500000 N004 Bùi Công Sinh 02/07/1973 20/01/1992 2500000 N005 Mai Kiều Oanh 10/10/1970 10/12/1991 3000000 N006 Phạm Hoài Trâm 20/05/1975 15/05/1992 2600000 N007 Ngô Gia Lâm 01/02/1977 20/01/1991 2500000 N008 Nguyễn Tiến Dũng 29/03/1972 10/08/1992 2800000 N009 Lê Đạt Thành 19/06/1971 28/10/1993 2500000
Trang 3H008 Gạch Bông Mét vuông H009 Sơn Bạch Tuyết Thùng H010 Sơn Nippon Thùng H011 Gạch Thẻ Viên H012 Gạch Oáng Viên
Tab_HOADON:
Tab_CHITIETHD:
HD001 H002 100 50000 HD002 H008 500 100000 HD003 H010 200 250000 HD004 H012 100 45000 HD005 H002 100 80000 HD006 H003 250 49000
MSHD MSKH MSNV NGAYHD HD001 K003 N001 10/10/1997 HD002 K001 N003 01/01/1998 HD003 K004 N008 22/01/1998 HD004 K002 N009 20/12/1995 HD005 K005 N007 11/06/1995 HD006 K009 N002 25/12/1996 HD007 K010 N004 03/07/1999 HD008 K006 N007 23/05/1999 HD009 K008 N005 10/02/2000 HD010 K002 N001 20/01/2000 HD011 K007 N005 21/02/2000
Trang 4PHẦN II: TẠO CÁC QUERY THEO CÁC YÊU CẦU
SELECT QUERY
Loại Select Query, không có tham số, không có cột mới:
1 Tìm các nhân viên có họ Nguyễn
2 Tìm các khách hàng có địa chỉ ở đường Tản Đà hay Ký Con
HD: Dùng toán tử In, tại cột Criteria: In(“Tản Đà”,”Ký Con”)
3 Tìm các Hoá Đơn có ngày: 1/1/1990 đến 1/1/1999
HD: Dùng toán tử Between và dấu #
Tại cột Criteria: Between (#1/1/1990# and #1/1/1999#)
Loại Select Query, không có tham số, có cột mới:
1 Tìm thành tiền cho mỗi dòng trên Chi Tiết Hoá Đơn (CHITIETHD) HD: Thêm cột mới THANHTIEN:[SOLUONG]*[DONGIA]
2 Tìm Thành tiền cao nhất, thấp nhất
HD: Tìm giá trị cao nhất
Chọn Sort -> Descending
Chọn All ->1
Tìm giá trị thấp nhất
Chọn Sort -> Ascending
CHỌN All ->2
Loại Select Query có thêm dòng Total:
1 Tính tổng số lượng cho mỗi Mặt Hàng
HD: Chọn trên Toolbar
Chọn các field như hình dưới
Field MSMH SOLUONG
ToTal Group by Sum |
2 Tính thành tiền cho mỗi HOADON
HD: Chọn Table CHITIETHD
Chọn các field như hình bên dưới
Field MSHD TTIEN:[SOLUONG]*[DONGIA]
ToTal Group by Sum |
Trang 53 Tính doanh thu cho mỗi Nhân Viên:
HD: Chọn Table: NHANVIEN,HOADON,CHITIETHD
Chọn các field như hình bên dưới
Field MSNV HOTEN DT:[SOLUONG]*[DONGIA]
ToTal Group by Group by Sum |
4 Tính doanh thu cho mỗi Nhân Viên ( Doanh thu mỗi Nhân viên bán được ) trong năm 2000:
HD: Chọn Table NHANVIEN, HOADON, CHITIETHD
Chọn các field như hình bên dưới
Field MSNV HOTEN NGAYHD DT:[SOLUONG]*[DONGIA] ToTal Group by Group by Where Sum | Criteria (*)
(*) Year([NGAYHD]) = 2000
Loại Select Query có thêm dòng tham số:
1 Nhập vào Ngày bắt đầu, Ngày Kết thúc Xuất ra các Hoá Đơn đã được thực hiện trong thời gian trên
HD: Chọn Table HOADON
Chọn các field như hình bên dưới
Field MSHD NGAYHD
Criteria Between [NgBD] and [NgKT]
2 Nhập Doanh số X ( Kiểu Number ) Xuất các HOADON có doanh số lớn hơn
X
HD: Chọn Table HOADON
Chọn các field như hình bên dưới
Field MSHD DT:[SOLUONG]*[DONGIA]
Total Group by Sum |
Criteria > [ Nhập Doanh Số:]
Trang 6UPDATE QUERY
1 Tăng lương cho các Nhân Viên có Ngày Vào Công Ty < 1999 HD: Chọn Table NHANVIEN
Chọn các field như hình bên dưới
Field LUONG NGAYVL
Update to [LUONG]+X
Criteria (*)
(*) Year([Ngayvl])<1999 , X: Số lương được tăng
2 Tăng lương 10% cho các Nhân Viên có DDH nhiều hơn 2 HD: Tạo 2 Loại Query: Select Query và Update Query
Select Query:
Chọn Table NHANVIEN Chọn các field như hình bên dưới
Field MSNV MSHD
Total Group by Count
Criteria >2
Show | | | |
Vào View -> SQL ( Làm dấu khối ,cắt lấy khối này )
Update Query:
Chọn Table NHANVIEN Chọn các field như hình bên dưới
Field LUONG MSNV
Update to [LUONG]*1.1
Criteria (*)
(*) Dán Khối điều kiện đã cắt ở trên vào đây
Trang 7DELETE QUERY Loại Delete Query có tham số:
1 Nhập vào Mã số Đơn Đặt Hàng là X Xoá DDH có mã số này
HD: Chọn Table DDH
Chọn các field như hình bên dưới
Field MSDDH
Criteria [Nhap M số]
2 Xoá các Chi tiết Hoá Đơn có SOLUONG = 0 Hay MSMH= rổng
HD: Chọn Table CHITIETHD
Chọn các field như hình bên dưới
Field SOLUONG MSNV
Criteria 0
MAKE TABLE QUERY
Tạo Table DDH1999 từ Table HOADON chứa các Hoá đơn có Ngày đaËt hàng đặt hàng trong năm 1999, gồm các field sau: MSDH, NgayDH
HD: Chọn Table HOADON
Field MSHD NGAYDH
MSHD (*) NGAYDH (*) Criteria Year([NgayDH]=1999
(*) Tên của Field mới
Trang 8CROSSTABLE QUERY
1 Hãy tạo query liệt kê và tính số lượng các mặt hàng của Khách hàng có dạng như sau:
TenKH Thép Ciment Sắt …
Nguyễn Văn A 10 30 10
Trần Thị B 40 50 50
HD: Chọn Table CHITIETHD, HOADON, KHACHHANG, MATHANG
Chọn CrossTab Query Chọn các field như hình bên dưới
Field TENKH TENMH SOLUONG
Total GroupBy GroupBy Sum
CrossTab Row heading Column heading Value
2 Tương tự yêu cầu trên nhưng tính thành tiền cho mỗi mặt hàng
HD: Chọn các table tương tự
Chọn CrossTab Query Chọn các field như hình bên dưới
APPEND QUERY
Thêm vào Table DDH1999 các HOADON có NGAYHD là năm 2000
HD: Chọn Table HOADON
Chọn Append Query
Append to: DDH1999
Field TENKH TENMH TTIEN:[SOLUONG]*[DONGIA]
Total GroupBy GroupBy Sum
CrossTab Row
heading
Column heading
Value
Field MSDDH NGAYHD
Append to MSDDH NGAYHD
Criteria Year([NGAYHD])=2000