Chuong IV-Query
Chia sẻ bởi Trần Ngọc Vũ An |
Ngày 23/10/2018 |
38
Chia sẻ tài liệu: Chuong IV-Query thuộc Bài giảng khác
Nội dung tài liệu:
Chương IV
QUERY
BẢNG VẤN TIN
IV.1 KHÁI NIỆM
Query là công cụ khai thác và xử lý dữ liệu của Microsoft Access, nó có thể đáp ứng nhu cầu tra cứu dữ liệu từ các bảng thuộc cơ sở dữ liệu.
Các loại Query
Select Query
Make Table Query
Append Query
Crostab Query
Update Query
Delete Query
Find Duplicates Query
Find Unmatched Query
Select Query
thường dược sử dụng nhiều nhất là (Bảng vấn tin lựa chọn).
Bằng Query này, ta có thể truy xuất dữ liệu cùng một lúc từ nhiều bảng dữ liệu khác nhau của cơ sở dữ liệu, có thể phân tích và hiệu chỉnh dữ liệu ngay trên bảng vấn tin hay sử dụng nó làm dữ liệu cơ sở cho một công việc khác.
Bảng kết quả vấn tin
được gọi là DynaSet (Dynamic Set).
Một Dynaset giống như một bảng dữ liệu nhưng không phải là một bảng dữ liệu thực sự, nó chỉ là cách tham khảo (cách nhìn động - Dynamic View) đối với dữ liệu được lấy từ nhiều bảng khác nhau mà thôi.
Chính vì vậy có thể thực hiện các thao tác tính toán xử lý nhiều dữ liệu cùng một lúc.
Tạo mới một Query
Bước 1: Trên cửa sổ Database
Chọn Object là Queries - New sẽ hiện hộp thoại New Query
Bước 2: Xác định các Table/Query tham gia vấn tin tại hộp thoại Show Table
New Query
Show Table
Trong đó chọn
Tables - Nếu xác định các Table tham gia vấn tin.
Queries - Nếu xác định các Query tham gia vấn tin.
Both - Nếu xác định có cả Table và Query tham gia vấn tin.
Chọn các Table/Query tham gia vấn tin (nếu muốn chọn nhiều bảng cùng một lúc: giữ Shift và nhấp chọn). Sau đó nhấp nút Add, chọn xong nhấp nút Close để đóng hộp thoại này lại.
Bước 3
Xaùc ñònh quan heä giöõa caùc Table/Query neáu coù nhieàu Table/Query tham gia vaán tin (neáu caùc quan heä naøy chöa ñöôïc khai baùo thì phaûi töï quy ñònh caùc quan heä naøy)
Bước 4
Xaùc ñònh caùc noäi dung vaán tin taïi phaàn döôùi cuûa cöûa soå Select Query
4.1: Xác định các Field tham gia vấn tin tại dòng Field
Nhấp giữ mouse tại Field có nội dung kéo thả vào vị trí đích (Cách này có thể giúp trong trường hợp muốn chèn thêm 1 Field vào một vị trí nào đó).
Nhấp đúp mouse tại Field cần lấy nội dung. (Nếu các Field tham gia vấn tin thông qua 1 biểu thức thì đó là field tính toán -> sẽ trình bày ở phần khác).
Chú ý
Khi 1 field ñöôïc laáy töø 1 baûng xuoáng doøng Field thì taïi doøng Table seõ hieän leân teân cuûa baûng naøy.
4.2: Xác định chỉ tiêu sắp xếp tại dòng Sort
Ascending: Sắp theo thứ tự tăng dần
Descending: Sắp theo thứ tự giảm dần
Not sorted: Không sắp xếp
Chú ý
Nếu chọn nhiều chỉ tiêu sắp xếp thì thứ tự ưu tiên từ trái sang phải.
bước 4.3
Xác định ẩn hiện nội dung các Field tại dòng Shows.
bước 4.4
Ñaët ñieàu kieän saøng loïc döõ lieäu taïi caùc doøng Criteria, Or
Bước 5: Lưu Query
File - Save (hoặc Ctrl + S) - Đặt tên cho Query (Nếu lưu lần đầu tiên).
Xem kết quả của một Query
Tại cửa sổ Database - Chọn Query cần mở. Bạn có thể nhấp vào một trong hai nút lệnh sau:
- Design: Mở Query ở chế Design View (để hiệu chỉnh thiết kế)
- Open: Mở Query ở chế độ Datasheet View (hiển thị dữ kiện)
Khi đã mở Query
có thể sử dụng các biểu tượng trên toolbar để trở về chế độ
Design View
Datasheet View
Ví dụ
Trên file QuanLySinhVien.MDB, tạo Select Query SinhVien 000011 bao gồm các thông tin: Mã số sinh viên, Họ tên, Ngày tháng năm sinh, Mã Khoa, Tên Khoa...
Trong cửa sổ thiết kế khai báo như hình 4-2.
Tạo Simple Query bằng Wizard
thực hiện các bước sau (xem hình)
Bước 1
Xác định các Field tham gia vào truy vấn (trả lời câu hỏi: Which field do you want in your query ?)
Xong nhấp biểu tượng nếu muốn chọn tất cả các field tại cột Available Fields thì nhấp nút quân hàm xuôi.
Muốn bỏ chọn 1 field hãy nhấp nút bé hơn, để bỏ chọn tất cả nhấp quân hàm ngược. Sau khi đã chọn đủ thì nhấp Next để tiếp tục bước sau.
Hình 4-4: Simple Query
Bước 2
Lựa chọn việc hiển thị chi tiết kết quả hay thực hiện tổng kết số liệu (trả lời câu hỏi: Would you like a detail or summary query?)
Chọn Detail: nếu muốn hiển thị chi tiết toàn bộ giá trị các field đã chọn.
Chọn Summary
nếu muốn thực hiện tổng kết số liệu. Nếu chọn công việc này thì hãy nhập Summary Options để chọn các chỉ tiêu tổng kết như sau:
Sum: tính tổng giá trị của Field.
Avg: tính giá trị trung bình của Field.
Min: tính giá trị nhỏ nhất của Field.
Max: tính giá trị lớn nhất của Field.
Count: Đếm số record
Sau khi
chọn các chỉ tiêu tổng kết xong chọn OK và nhấp nút lệnh Next.
Lưu ý
Nếu việc tổng kết cần dựa trên field có kiểu dữ liệu là Date/Time (ví dụ cần tính tổng số mỗi sản phẩm trong các hoá đơn theo từng tháng thì việc tổng kết phải dựa trên field NgaylapHD - kiểu Date/Time ). Lúc này phải khai báo thêm khoảng thời gian tổng kết như hình 4-6.
Hình 4 -5: Hộp thoại Summary Options
Hình 4-6: Các khoảng thời gian tổng kết
Các lựa chọn bao gồm
Unique date/time: tổng kết theo ngày/giờ
Day: tổng kết theo ngày (ngày hiển thị theo dạng Long Date)
Month: tổng kết theo tháng
Quarter: tổng kết theo quý (3 tháng)
Year: tổng kết theo năm
Bước 3
Đặt tên cho Query kết quả
(trả lời câu hỏi: "What title do you want for your query ?") và nhấp Finish để hoàn thành công việc.
Tạo Field tính toán trong Query
hàm IIF
Định dạng của trường tính toán
:
Các Field mà tên có khoảng trắng ở giữa phải được đặt vào trong hai dấu [ . ]
Chú ý
Teân Field tính toaùn khoâng ñöôïc truøng vôùi teân Field ñaõ coù trong caùc Table/Query tham gia vaán tin.
Hàm IIF
Cú pháp: IIF ( < điều kiện Logic>, < biểu thức 1>, < biểu thức 2> )
Hàm IFF trả về giá trị của biểu thức 1 nếu điều kiện Logic đúng.
Ngược lại, trả về giá trị của biểu thức 2 nếu điều kiện Logic sai.
Chú ý
Để thuận tiện khi gõ hay sửa nội dung của ô thì nhấp con trỏ tại ô đó rồi giữ Shift và bấm phím F2 để phóng lớn ô này lên (hoặc nhấn nút phải mouse rồi chọn Zoom), sau khi gõ xong bấm OK.
Ví dụ về biểu thức
Tạo Query HOA DON từ một CSDL (ví dụ QuanLyKho.MDB) trong Query có các cột:
TIENHD: để tính thành tiền trong hoá đơn
SONGAY: để tính số ngày nhận hàng kể từ ngày lập hoá đơn. Các biểu thức sẽ như sau:
TIENHD: DONGIA * SOLUONG
SONGAY: NGAYNHANHANG - NGAYLAPHD
TIENPHAITRA
để tính số tiền khách hàng phải trả.
Tiền phải trả bao gồm số tiền trong hoá đơn và số tiền thưởng phạt tuỳ theo thời hạn lấy hàng.
Biết rằng: nếu thời gian từ ngày lập hoá đơn đến ngày nhận hàng
- Dưới 20 ngày - giảm 5$/ 1 ngày
- Từ 20 đến 40 ngày - không tính phạt
- Trên 40 ngày - Phạt 5$ / 1 ngày
Công thức
TIENPHAITRA: TIENHD + IIF(SONGAY<20, (SONGAY- 20)*5, IF(SONGAY>40,(SONGAY-40)*5,0))
Điều chỉnh thuộc tính của cột trong Query
Nhấp con trỏ mouse tại cột cần chỉnh thuộc tính rồi làm theo một trong hai cách sau:
Nhấp Menu View - Properties hoặc nhấp biểu tượng Properties trên Query Design Toolbar (hoặc nhấp nút phải mouse rồi chọn mục Properties).
Các thuộc tính trong cửa sổ này tương tự các thuộc tính đã trình bày cho Field trong Table ở chương III.
Ví dụ chỉnh thuộc tính của
Field TIENHD
+ Format: Currency
+ Decimal places: 0
+ Caption: Thành tiền HD
Chỉnh thuộc tính của Field TIENPHAITRA
+ Format: Curency
+ Decimal places: 0
+ Caption: soá tieàn phaûi traû
Hiển thị một số Record nhờ Top Values
Nhấp con trỏ mouse tại biểu tượng Top Values (trong chế độ Design View) và chọn theo các mục sau:
All: Hiện tất cả các Record của Query
5: Hiện 5 record đầu tiên của Query
25: Hiện 25 record đầu tiên của Query
5%: Hiện 5% số record đầu tiên của Query
25%: Hiện 25% số Record đầu tiên của Query
Lưu ý
Muốn hiển thị theo số record tuỳ ý thì chỉ việc nhấp mouse vào biểu tượng Top Value và gõ con số theo yêu cầu (một số hoặc một số phần trăm theo yêu cầu).
IV.3 ĐẶT ĐIỀU KIỆN CHO QUERY
Bước 1: Xác định các Field làm điều kiện sàng lọc tại dòng Field
Bước 2: Xác định ẩn / hiện nội dung của Field làm điều kiện tại dòng Show
? Hiện nột dung
? Ẩn nội dung
Bước 3: Đặt điều kiện tương ứng tại các dòng Criteria, Or. như hình 4-7.
Hình 4-7: Đặt điều kiện cho Query
IV.4 CÁC PHÉP TOÁN
Các phép toán số học
Phép ghép chuỗi
Các phép toán so sánh
Các phép toán logic
Các phép toán số học
Phép ghép chuỗi
Cú pháp:
< Biểu thức chuỗi 1 > & < biểu thức chuỗi 2 >
Công dụng:
Ghép < Biểu thức chuỗi 2 > vào < biểu thức chuỗi 1 >
Ví dụ: Hãy ghép nội dung của hai cột HO và TEN lại với nhau sao cho họ và tên cách nhau một khoảng trắng.
HOTEN: HO & " " &TEN
Các phép toán so sánh
Kết quả của một phép toán so sánh là một giá trị kiểu logic. Quy tắc so sánh:
So sánh các giá trị kiểu ngày:
theo quy tắc là ngày sau thì lớn hơn ngày trước.
So sánh các giá trị kiểu chuỗi
Vieäc so saùnh 2 giaù trò kieåu chuoãi ñöôïc Access tieán haønh theo quy taéc sau:
ñaàu tieân laáy 2 kyù töï ñaàu beân traùi ñem so saùnh vôùi nhau, kyù töï naøo ñöùng tröôùc trong baûng maõ ANSI thì keát luaän chuoãi ñoù nhoû hôn;
neáu 2 kyù töï ñoù nhö nhau thì laïi laáy tieáp kyù töï keá beân phaûi cuûa 2 chuoãi ñem so vôùi nhau vaø cöù theá tieáp tuïc …
Lưu ý:
Trong quá trình so sánh Access không phân biệt chữ hoa và chữ thường.
Các phép toán logic
a- Phép NOT
b- Phép AND
c- Phép OR
Áp dụng đặt điều kiện trong Query
Điều kiện được viết ở nhiều cột trên cùng một dòng thì có thể hiểu theo phép toán AND (điều kiện đồng thời xảy ra).
Điều kiện được viết trên nhiều dòng có thể hiểu theo phép toán OR (điều kiện không đồng thời xảy ra).
Ví dụ a: Hiển thị những hoá đơn được lập trước ngày 30 tháng 1 năm 2003 do nhân viên Nguyễn Kim Ngọc (mã số 4) lập.
Show table: HOA DON, NHAN VIEN
Chúng ta có thể hiểu theo phép toán AND là:
(MANV= 4) AND (NGAYLAPHD < #01/30/2003#)
Ví dụ b
Hiển thị những hoá đơn do Nguyễn Kim Ngọc lập sau ngày 15/7/2003
hoặc do Vương Kim Lan (mã số 9) lập sau ngày 15/8/2003.
Show table:
HOADON, NHANVIEN
Ta có thể hiểu theo phép toán OR:
( MANV=4 AND NGAYLAPHD > #07/15/2003#) OR
(MANV= 9 AND NGAYLAPHD > #08/15/2003#)
Phép đối sánh mẫu
Cú pháp: LIKE < mẫu dữ liệu>
Công dụng: So sánh chuỗi dữ liệu với mẫu dữ liệu được chỉ sau LIKE. Cho kết quả True nếu giá trị đem đối chiếu thoả mãn mẫu dữ liệu, ngược lại cho kết quả False.
Các ký tự đại diện (wildcard characters) được sử dụng là:
* : đại diện cho nhiều ký tự
? : đại diện cho một ký tự
# : đại diện cho 1 chữ số (từ 0 đến 9)
Ví dụ
Trong file CSDL QuanLySinhVien.MDB ñaõ coù table SinhVien.
Haõy taïo Query hieån thò hoï teân cuûa caùc sinh vieân hoï Traàn.
Show table: SinhVien
Cấu trúc BETWEEN. AND .
Cú pháp: Between And
Công dụng: Cho kết quả True nếu giá trị so sánh nằm trong giới hạn giữa và , ngược lại False.
Ví dụ
Hiển thị những hoá đơn được lập từ ngày 15/7/93 đến ngày 15/8/93
Show table: HOADON
Phép toán IN
Cú pháp:
IN (, , .., )
Công dụng: Cho kết quả True nếu giá trị cần so sánh bằng một trong các giá trị:, , . ,, ngược lại sẽ cho kết quả False.
Ví dụ
Trong file QuanLYSinhVien.MDB hãy tạo Query hiển thị những sinh viên thuộc các khoa Công nghệ Thông Tin (CN) và khoa Quản trị (QT).
Show table: Sinhvien, Khoa
IV.5 TỔNG HỢP DỮ LIỆU BẰNG SELECT QUERY (TOTAL)
Chức năng: Gộp các Record giống nhau theo 1 giá trị nào đó thành 1 nhóm và tính tổng, đếm số record, tìm giá trị lớn nhất, nhỏ nhất trong nhóm.
Cách dùng lệnh Totals
Trong cửa sổ Design View của Query:
Bước 1: Nhấp vào biểu tượng Totals (dấu sigma) trên Query Design Toolbar (hoặc dùng lệnh Totals trong View) sẽ hiện dòng Total dưới dòng Table.
Bước 2: Chọn giá trị trên dòng Total
Group by Gộp các dòng có giá trị giống nhau trên cột thành một nhóm.
Sum Tính tổng của các giá trị trên cột của nhóm.
Avg Tính giá trị trung bình của các giá trị trên cột của nhóm.
Max Tìm giá trị lớn nhất trong các giá trị trên cột của nhóm.
Min Tìm giá trị nhỏ nhất trong các giá trị trên cột của nhóm.
Chọn giá trị trên dòng Total
Count Đếm số Record có trong nhóm mà tại đó cột có giá trị.
First Tìm giá trị đầu tiên trong các giá trị trên cột của nhóm.
Last Tìm giá trị cuối cùng trong các giá trị trên cột của nhóm.
Expression Cho biết cột là biểu thức tính toán.
Where Cho biết cột là một biểu thức điều kiện dùng để lọc Record trước khi tính toán và không hiện nội dung cột khi xem kết quả.
Ví dụ 1
Cho biết mỗi khách hàng đã đặt bao nhiêu hóa đơn và tổng số tiền các hóa đơn.
Show Table: Hoa Don, Chi tiet Hoa don, San Pham
Ví dụ 2
Cho biết tổng số tiền các hóa đơn của mỗi tháng trong năm 2001.
Show Table: Hoa Don, Chi tiet Hoa don, San Pham
Lưu ý
Coät coù doøng Total = Where seõ khoâng ñöôïc hieän ra (Show = )
Lưu ý điều kiện WHERE trong Total
Nếu lọc Record trước khi tính toán: dùng Where.
Nếu lọc Record sau khi tính toán: không được dùng Where.
Ví duï 3:
Ví dụ 3
Cho biết mỗi khách hàng đã có bao nhiêu hóa đơn mua mặt hàng MB02 với số tiền >= 100$.
Show Table:
Hoa Don, San Pham, Chi tiet Hoa don
Ví dụ 4
Cho biết các khách hàng có tổng số tiền mua hàng >= 20000$.
Show Table:
Hoa Don, Chi tiet Hoa don, San Pham
Ứng dụng sàng lọc Record
Ví dụ 1: Trong file QuanLyKho.MDB - Hãy tạo query cho biết những hóa đơn có tổng số tiền là lớn nhất đã lập tại mỗi thành phố.
Bước 1: Tạo query TIEN HD để tính tổng số tiền cho từng hóa đơn:
Bước 1
Tạo query TIEN HD để tính tổng số tiền cho từng hóa đơn
Show Table:
HoaDon, Chitiet, SanPham, KhachHang
Bước 2
Tạo query MAX TP để để tính xem ở mỗi thành phố thì số tiền lớn nhất của 1 hóa đơn là bao nhiêu:
Show Query: TIEN HD
Bước 3
Tạo query kết quả theo yêu cầu dựa vào 2 query trên:
Show Query: TIEN HD và MAX TP (phải nối quan hệ giữa hai Query này thông qua field ThanhPho)
Show Query: TIEN HD và MAX TP
IV.6 CROSTAB QUERY
Crosstab Query là một loại Query dùng để tổng hợp trong đó:
giá trị của một số Field trong Table hoặc Query nguồn được dùng làm tiêu đề dòng
giá trị của một Field (hoặc một biểu thức) được dùng làm tiêu đề cột
giá trị tổng hợp của một Field (hoặc một biểu thức) là giá trị (value) của các ô trong Crosstab Query.
Nhờ Crosstab Query
có thể nhìn dữ liệu dưới dạng tổng quát hơn so với Select Query, đồng thời có thể tạo bảng thống kê với số cột biến động tùy thuộc vào dữ liệu trong các bảng.
Ví dụ
Giả sử có Query TONG HOP HOA DON như sau:
MaHD, MaKH, HoTen, TenSP, SoLuong, ThanhTien.
Cần tạo Query cho biết mỗi nhân viên đã bán mỗi sản phẩm được bao nhiêu tiền?
Nếu tạo bằng lệnh Total trong Select Query, bảng kết quả như sau:
Hình 4-8: Kết quả thực hiện bằng Total Query
Hình 4-9: Kết quả thực hiện bằng Crosstab Query
Tạo Crosstab Query bằng Wizard
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Crosstab Query Wizard, rồi chọn OK.
Bước 2: Chọn Table hoặc Query chứa các cột cần tính trong Crosstab Query (trả lời câu hỏi: " Which table or query contains the fields you want for the crosstab query results ?") ? ví dụ chọn TONG HOP HOA DON (bằng cách tại mục View hãy chọn Queries), nhấp Next.
Bước 3
Chọn các cột mà giá trị của nó làm tiêu đề dòng (Row Heading) cho Crosstab (ví dụ HoTen)
(Trả lời câu hỏi: "Which fields value do you want as row headings?"), xong nhấp Next.
Bước 4
Chọn cột mà giá trị của nó làm tiêu đề cột (Column Heading) (ví dụ TenSP), cho CrossTab.
(Trả lời câu hỏi: "Which fields value do you want as column headings?") xong nhấp Next.
Bước 5
Chọn giá trị (ThanhTien) và hàm tính (sum) cho vùng số liệu của Crosstab
(trả lời câu hỏi: "What number do you want calculated for each column and row intersection ?"), xong nhấp Next.
Chọn mục Yes, include row sums: để tạo thêm 1 dòng chứa kết quả tổng cộng số liệu của các cột tạo bởi Column Heading.
Bước 6
Đặt tên cho Query kết quả.
(trả lời câu hỏi: "What do you want to name your query ?"), xong nhấp Finish.
Tạo Crosstab Query không dùng Wizard
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ? OK.
Bước 2: Chọn table hoặc Query chứa các cột cần tính trong Crosstab Query tại hộp thoại Show Table.
Bước 3
Nhấp biểu tượng Query Type trên Query Desig toolbar rồi chọn Crosstab Query, tại cửa sổ Design View sẽ hiện dòng Crosstab dưới dòng Total.
Bước 4
Chọn các giá trị sau trên dòng Crosstab.
Row heading giá trị của cột chọn đặt ở vùng Row Heading của bảng Crosstab.
Colunm heading giá trị của cột chọn đặt ở vùng Column Heading của bảng Crosstab.
Value các giá trị của cột chọn (hoặc tính toán) ở vùng Value của bảng Crosstab
not show dùng cho cột có Total = Where
Show Table:
TONG HOP HOA DON
Bước 5
nhấp biểu tượng Open trên Query Design Toolbar để xem kết quả.
IV.7 CÁC LOẠI QUERY KHÁC
Gồm 2 loại
Các Query sử dụng Wizard
Các Query không sử dụng Wizard
Find Duplicates Query Wizard
Chức năng: tìm các Record trùng lặp giá trị trên một số cột nào đó.
Ví dụ: liệt kê các hóa đơn được lập trùng lặp (nhiều lần).
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Find Duplicates Query Wizard, rồi chọn OK.
Bước 2: Chọn bảng dữ liệu chứa dữ liệu trùng lặp cần tìm (ví dụ chọn bảng HOA DON), xong nhấp Next.
Bước 3: Chọn những cột chứa giá trị trùng lặp cần tìm (ví dụ chọn cột NgayLapHD), xong nhấp Next.
Bước 4: Chọn các cột muốn hiện ở bảng kết quả (MaHD, MaKH, .), nhấp Next.
Bước 5: Đặt tên cho Query kết quả, xong nhấp Finish.
Find Unmatched Query Wizard
Chức năng: tìm các Record trong một bảng (bảng A) không có trong bảng khác (bảng B)
Ví dụ: liệt kê các khách hàng chưa có hóa đơn lần nào.
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Find Unmatched Query Wizard, rồi chọn OK.
Bước 2: Chọn bảng A (ví dụ bảng KHACH HANG), xong nhấp Next.
Find Unmatched Query Wizard
Bước 3: Chọn bảng B (ví dụ bảng HOA DON), xong nhấp Next.
Bước 4: Chọn 2 cột quan hệ giữa 2 bảng và nhấp nút <=>, xong nhấp Next. (có thể xem ở mục Matching fields để kiểm tra)
Bước 5: Chọn các cột hiện ở bảng kết quả (MaKH, TenCty,.), nhấp Next.
Bước 6: Đặt tên cho Query kết quả, xong nhấp Finish.
Các Query không sử dụng Wizard
Make table Query
Chức năng: tạo một Table mới với dữ liệu lấy từ các Table hoặc Query khác đã có.
Ví dụ
Taïo Table HOA DON CUOI NAM 1993 goàm caùc coät MaHD, MaKH, NgayLapHD, TongTien cuûa caùc hoùa ñôn thaùng 11, 12 naêm 1993 (laáy töø table HOA DON).
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View -> OK.
Bước 2: Chọn Table hoặc Query chứa dữ liệu nguồn (ví dụ chọn các bảng Hoa Don, Chi tiet, San Pham).
Bước 3:
Nhấp biểu tượng Query Type trên Query Design toolbar rồi chọn Make-Table Query (hoặc chọn Menu View, Make-Table Query) sẽ hiện hộp thoại:
Hình 4-10
Trong hộp thoại Make Table
Table Name: gõ tên table cần tạo (HOA DON CUOI NAM 1993)
Chọn Current Database (table kết quả đặt trong CSDL đang làm việc) hoặc Another Database (table kết quả đặt trong CSDL khác và gõ tên file ở ô File Name)
Bước 4: Liệt kê các cột, điều kiện chọn các Record đưa vào bảng đích.
Ví dụ hãy đưa vào các nội dung sau:
Bước 5:
Nhấp nút Run trên Query Design Toolbar để thi hành lệnh tạo table (nút Design chỉ hiện các Record được chọn để kiểm tra đúng sai chứ không tạo table).
Update Query
Chức năng: Sửa đổi dữ liệu cho nhiều Record ở nhiều bảng theo điều kiện.
Ví dụ: sửa trên cột ThanhPho của Table KHACH HANG từ HCM thành Hồ Chí Minh.
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn Table chứa dữ liệu sửa ( KHACH HANG)
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Update Query.
Bước 4: Chọn Field: cột cần sửa; Update to: giá trị mới; Critera: điều kiện chọn Record được sửa.
Bước 5:
Nhấp nút Run để thi hành lệnh.
Append Query
Chức năng: Thêm vào cuối một table 1 số Record mới lấy từ các Table hoặc Query khác.
Ví dụ: Thêm vào cuối table HOA DON CUOI NAM 1993 các hóa đơn tháng 10 năm 1993 (lấy từ table HOA DON).
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn table hoặc Query chứa dữ liệu nguồn (ví dụ chọn các bảng Hoa Don, San Pham, Chi tiet Hoa don).
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Append Query sẽ hiện thị hộp thoại:
Hình 4-11: Khai báo Table đích
Trong đó
Table Name : choïn teân Table ñích (HOA DON CUOI NAM 1993) laø:
Choïn Current Database ( table choïn ôû trong CSDL ñang laøm vieäc) hoaëc Another Database (ôû trong CSDL khaùc vaø goõ teân file ôû oâ File Name)
Bước 4
Khai báo Field: Tên cột chứa dữ liệu nguồn;
Append to: Tên cột đích;
Criteria: điều kiện để Record được sao chép.
Khai báo như sau
Bước 5
nhaáp nuùt Run ñeå thi haønh.
Delete Query
Chức năng: Xóa các Record theo điều kiện.
Ví dụ: xóa trong table HOA DON CUOI NAM 1993 các hóa đơn có ngày lập sau 25/12/93.
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn Table chứa dữ liệu muốn xóa (HOA DON CUOI NAM 1993)
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Delete Query.
Bước 4: Chọn điều kiện xóa.
Bước 5
nhấp nút Run để thi hành.
QUERY
BẢNG VẤN TIN
IV.1 KHÁI NIỆM
Query là công cụ khai thác và xử lý dữ liệu của Microsoft Access, nó có thể đáp ứng nhu cầu tra cứu dữ liệu từ các bảng thuộc cơ sở dữ liệu.
Các loại Query
Select Query
Make Table Query
Append Query
Crostab Query
Update Query
Delete Query
Find Duplicates Query
Find Unmatched Query
Select Query
thường dược sử dụng nhiều nhất là (Bảng vấn tin lựa chọn).
Bằng Query này, ta có thể truy xuất dữ liệu cùng một lúc từ nhiều bảng dữ liệu khác nhau của cơ sở dữ liệu, có thể phân tích và hiệu chỉnh dữ liệu ngay trên bảng vấn tin hay sử dụng nó làm dữ liệu cơ sở cho một công việc khác.
Bảng kết quả vấn tin
được gọi là DynaSet (Dynamic Set).
Một Dynaset giống như một bảng dữ liệu nhưng không phải là một bảng dữ liệu thực sự, nó chỉ là cách tham khảo (cách nhìn động - Dynamic View) đối với dữ liệu được lấy từ nhiều bảng khác nhau mà thôi.
Chính vì vậy có thể thực hiện các thao tác tính toán xử lý nhiều dữ liệu cùng một lúc.
Tạo mới một Query
Bước 1: Trên cửa sổ Database
Chọn Object là Queries - New sẽ hiện hộp thoại New Query
Bước 2: Xác định các Table/Query tham gia vấn tin tại hộp thoại Show Table
New Query
Show Table
Trong đó chọn
Tables - Nếu xác định các Table tham gia vấn tin.
Queries - Nếu xác định các Query tham gia vấn tin.
Both - Nếu xác định có cả Table và Query tham gia vấn tin.
Chọn các Table/Query tham gia vấn tin (nếu muốn chọn nhiều bảng cùng một lúc: giữ Shift và nhấp chọn). Sau đó nhấp nút Add, chọn xong nhấp nút Close để đóng hộp thoại này lại.
Bước 3
Xaùc ñònh quan heä giöõa caùc Table/Query neáu coù nhieàu Table/Query tham gia vaán tin (neáu caùc quan heä naøy chöa ñöôïc khai baùo thì phaûi töï quy ñònh caùc quan heä naøy)
Bước 4
Xaùc ñònh caùc noäi dung vaán tin taïi phaàn döôùi cuûa cöûa soå Select Query
4.1: Xác định các Field tham gia vấn tin tại dòng Field
Nhấp giữ mouse tại Field có nội dung kéo thả vào vị trí đích (Cách này có thể giúp trong trường hợp muốn chèn thêm 1 Field vào một vị trí nào đó).
Nhấp đúp mouse tại Field cần lấy nội dung. (Nếu các Field tham gia vấn tin thông qua 1 biểu thức thì đó là field tính toán -> sẽ trình bày ở phần khác).
Chú ý
Khi 1 field ñöôïc laáy töø 1 baûng xuoáng doøng Field thì taïi doøng Table seõ hieän leân teân cuûa baûng naøy.
4.2: Xác định chỉ tiêu sắp xếp tại dòng Sort
Ascending: Sắp theo thứ tự tăng dần
Descending: Sắp theo thứ tự giảm dần
Not sorted: Không sắp xếp
Chú ý
Nếu chọn nhiều chỉ tiêu sắp xếp thì thứ tự ưu tiên từ trái sang phải.
bước 4.3
Xác định ẩn hiện nội dung các Field tại dòng Shows.
bước 4.4
Ñaët ñieàu kieän saøng loïc döõ lieäu taïi caùc doøng Criteria, Or
Bước 5: Lưu Query
File - Save (hoặc Ctrl + S) - Đặt tên cho Query (Nếu lưu lần đầu tiên).
Xem kết quả của một Query
Tại cửa sổ Database - Chọn Query cần mở. Bạn có thể nhấp vào một trong hai nút lệnh sau:
- Design: Mở Query ở chế Design View (để hiệu chỉnh thiết kế)
- Open: Mở Query ở chế độ Datasheet View (hiển thị dữ kiện)
Khi đã mở Query
có thể sử dụng các biểu tượng trên toolbar để trở về chế độ
Design View
Datasheet View
Ví dụ
Trên file QuanLySinhVien.MDB, tạo Select Query SinhVien 000011 bao gồm các thông tin: Mã số sinh viên, Họ tên, Ngày tháng năm sinh, Mã Khoa, Tên Khoa...
Trong cửa sổ thiết kế khai báo như hình 4-2.
Tạo Simple Query bằng Wizard
thực hiện các bước sau (xem hình)
Bước 1
Xác định các Field tham gia vào truy vấn (trả lời câu hỏi: Which field do you want in your query ?)
Xong nhấp biểu tượng nếu muốn chọn tất cả các field tại cột Available Fields thì nhấp nút quân hàm xuôi.
Muốn bỏ chọn 1 field hãy nhấp nút bé hơn, để bỏ chọn tất cả nhấp quân hàm ngược. Sau khi đã chọn đủ thì nhấp Next để tiếp tục bước sau.
Hình 4-4: Simple Query
Bước 2
Lựa chọn việc hiển thị chi tiết kết quả hay thực hiện tổng kết số liệu (trả lời câu hỏi: Would you like a detail or summary query?)
Chọn Detail: nếu muốn hiển thị chi tiết toàn bộ giá trị các field đã chọn.
Chọn Summary
nếu muốn thực hiện tổng kết số liệu. Nếu chọn công việc này thì hãy nhập Summary Options để chọn các chỉ tiêu tổng kết như sau:
Sum: tính tổng giá trị của Field.
Avg: tính giá trị trung bình của Field.
Min: tính giá trị nhỏ nhất của Field.
Max: tính giá trị lớn nhất của Field.
Count: Đếm số record
Sau khi
chọn các chỉ tiêu tổng kết xong chọn OK và nhấp nút lệnh Next.
Lưu ý
Nếu việc tổng kết cần dựa trên field có kiểu dữ liệu là Date/Time (ví dụ cần tính tổng số mỗi sản phẩm trong các hoá đơn theo từng tháng thì việc tổng kết phải dựa trên field NgaylapHD - kiểu Date/Time ). Lúc này phải khai báo thêm khoảng thời gian tổng kết như hình 4-6.
Hình 4 -5: Hộp thoại Summary Options
Hình 4-6: Các khoảng thời gian tổng kết
Các lựa chọn bao gồm
Unique date/time: tổng kết theo ngày/giờ
Day: tổng kết theo ngày (ngày hiển thị theo dạng Long Date)
Month: tổng kết theo tháng
Quarter: tổng kết theo quý (3 tháng)
Year: tổng kết theo năm
Bước 3
Đặt tên cho Query kết quả
(trả lời câu hỏi: "What title do you want for your query ?") và nhấp Finish để hoàn thành công việc.
Tạo Field tính toán trong Query
hàm IIF
Định dạng của trường tính toán
Các Field mà tên có khoảng trắng ở giữa phải được đặt vào trong hai dấu [ . ]
Chú ý
Teân Field tính toaùn khoâng ñöôïc truøng vôùi teân Field ñaõ coù trong caùc Table/Query tham gia vaán tin.
Hàm IIF
Cú pháp: IIF ( < điều kiện Logic>, < biểu thức 1>, < biểu thức 2> )
Hàm IFF trả về giá trị của biểu thức 1 nếu điều kiện Logic đúng.
Ngược lại, trả về giá trị của biểu thức 2 nếu điều kiện Logic sai.
Chú ý
Để thuận tiện khi gõ hay sửa nội dung của ô thì nhấp con trỏ tại ô đó rồi giữ Shift và bấm phím F2 để phóng lớn ô này lên (hoặc nhấn nút phải mouse rồi chọn Zoom), sau khi gõ xong bấm OK.
Ví dụ về biểu thức
Tạo Query HOA DON từ một CSDL (ví dụ QuanLyKho.MDB) trong Query có các cột:
TIENHD: để tính thành tiền trong hoá đơn
SONGAY: để tính số ngày nhận hàng kể từ ngày lập hoá đơn. Các biểu thức sẽ như sau:
TIENHD: DONGIA * SOLUONG
SONGAY: NGAYNHANHANG - NGAYLAPHD
TIENPHAITRA
để tính số tiền khách hàng phải trả.
Tiền phải trả bao gồm số tiền trong hoá đơn và số tiền thưởng phạt tuỳ theo thời hạn lấy hàng.
Biết rằng: nếu thời gian từ ngày lập hoá đơn đến ngày nhận hàng
- Dưới 20 ngày - giảm 5$/ 1 ngày
- Từ 20 đến 40 ngày - không tính phạt
- Trên 40 ngày - Phạt 5$ / 1 ngày
Công thức
TIENPHAITRA: TIENHD + IIF(SONGAY<20, (SONGAY- 20)*5, IF(SONGAY>40,(SONGAY-40)*5,0))
Điều chỉnh thuộc tính của cột trong Query
Nhấp con trỏ mouse tại cột cần chỉnh thuộc tính rồi làm theo một trong hai cách sau:
Nhấp Menu View - Properties hoặc nhấp biểu tượng Properties trên Query Design Toolbar (hoặc nhấp nút phải mouse rồi chọn mục Properties).
Các thuộc tính trong cửa sổ này tương tự các thuộc tính đã trình bày cho Field trong Table ở chương III.
Ví dụ chỉnh thuộc tính của
Field TIENHD
+ Format: Currency
+ Decimal places: 0
+ Caption: Thành tiền HD
Chỉnh thuộc tính của Field TIENPHAITRA
+ Format: Curency
+ Decimal places: 0
+ Caption: soá tieàn phaûi traû
Hiển thị một số Record nhờ Top Values
Nhấp con trỏ mouse tại biểu tượng Top Values (trong chế độ Design View) và chọn theo các mục sau:
All: Hiện tất cả các Record của Query
5: Hiện 5 record đầu tiên của Query
25: Hiện 25 record đầu tiên của Query
5%: Hiện 5% số record đầu tiên của Query
25%: Hiện 25% số Record đầu tiên của Query
Lưu ý
Muốn hiển thị theo số record tuỳ ý thì chỉ việc nhấp mouse vào biểu tượng Top Value và gõ con số theo yêu cầu (một số hoặc một số phần trăm theo yêu cầu).
IV.3 ĐẶT ĐIỀU KIỆN CHO QUERY
Bước 1: Xác định các Field làm điều kiện sàng lọc tại dòng Field
Bước 2: Xác định ẩn / hiện nội dung của Field làm điều kiện tại dòng Show
? Hiện nột dung
? Ẩn nội dung
Bước 3: Đặt điều kiện tương ứng tại các dòng Criteria, Or. như hình 4-7.
Hình 4-7: Đặt điều kiện cho Query
IV.4 CÁC PHÉP TOÁN
Các phép toán số học
Phép ghép chuỗi
Các phép toán so sánh
Các phép toán logic
Các phép toán số học
Phép ghép chuỗi
Cú pháp:
< Biểu thức chuỗi 1 > & < biểu thức chuỗi 2 >
Công dụng:
Ghép < Biểu thức chuỗi 2 > vào < biểu thức chuỗi 1 >
Ví dụ: Hãy ghép nội dung của hai cột HO và TEN lại với nhau sao cho họ và tên cách nhau một khoảng trắng.
HOTEN: HO & " " &TEN
Các phép toán so sánh
Kết quả của một phép toán so sánh là một giá trị kiểu logic. Quy tắc so sánh:
So sánh các giá trị kiểu ngày:
theo quy tắc là ngày sau thì lớn hơn ngày trước.
So sánh các giá trị kiểu chuỗi
Vieäc so saùnh 2 giaù trò kieåu chuoãi ñöôïc Access tieán haønh theo quy taéc sau:
ñaàu tieân laáy 2 kyù töï ñaàu beân traùi ñem so saùnh vôùi nhau, kyù töï naøo ñöùng tröôùc trong baûng maõ ANSI thì keát luaän chuoãi ñoù nhoû hôn;
neáu 2 kyù töï ñoù nhö nhau thì laïi laáy tieáp kyù töï keá beân phaûi cuûa 2 chuoãi ñem so vôùi nhau vaø cöù theá tieáp tuïc …
Lưu ý:
Trong quá trình so sánh Access không phân biệt chữ hoa và chữ thường.
Các phép toán logic
a- Phép NOT
b- Phép AND
c- Phép OR
Áp dụng đặt điều kiện trong Query
Điều kiện được viết ở nhiều cột trên cùng một dòng thì có thể hiểu theo phép toán AND (điều kiện đồng thời xảy ra).
Điều kiện được viết trên nhiều dòng có thể hiểu theo phép toán OR (điều kiện không đồng thời xảy ra).
Ví dụ a: Hiển thị những hoá đơn được lập trước ngày 30 tháng 1 năm 2003 do nhân viên Nguyễn Kim Ngọc (mã số 4) lập.
Show table: HOA DON, NHAN VIEN
Chúng ta có thể hiểu theo phép toán AND là:
(MANV= 4) AND (NGAYLAPHD < #01/30/2003#)
Ví dụ b
Hiển thị những hoá đơn do Nguyễn Kim Ngọc lập sau ngày 15/7/2003
hoặc do Vương Kim Lan (mã số 9) lập sau ngày 15/8/2003.
Show table:
HOADON, NHANVIEN
Ta có thể hiểu theo phép toán OR:
( MANV=4 AND NGAYLAPHD > #07/15/2003#) OR
(MANV= 9 AND NGAYLAPHD > #08/15/2003#)
Phép đối sánh mẫu
Cú pháp: LIKE < mẫu dữ liệu>
Công dụng: So sánh chuỗi dữ liệu với mẫu dữ liệu được chỉ sau LIKE. Cho kết quả True nếu giá trị đem đối chiếu thoả mãn mẫu dữ liệu, ngược lại cho kết quả False.
Các ký tự đại diện (wildcard characters) được sử dụng là:
* : đại diện cho nhiều ký tự
? : đại diện cho một ký tự
# : đại diện cho 1 chữ số (từ 0 đến 9)
Ví dụ
Trong file CSDL QuanLySinhVien.MDB ñaõ coù table SinhVien.
Haõy taïo Query hieån thò hoï teân cuûa caùc sinh vieân hoï Traàn.
Show table: SinhVien
Cấu trúc BETWEEN. AND .
Cú pháp: Between
Công dụng: Cho kết quả True nếu giá trị so sánh nằm trong giới hạn giữa
Ví dụ
Hiển thị những hoá đơn được lập từ ngày 15/7/93 đến ngày 15/8/93
Show table: HOADON
Phép toán IN
Cú pháp:
IN (
Công dụng: Cho kết quả True nếu giá trị cần so sánh bằng một trong các giá trị:
Ví dụ
Trong file QuanLYSinhVien.MDB hãy tạo Query hiển thị những sinh viên thuộc các khoa Công nghệ Thông Tin (CN) và khoa Quản trị (QT).
Show table: Sinhvien, Khoa
IV.5 TỔNG HỢP DỮ LIỆU BẰNG SELECT QUERY (TOTAL)
Chức năng: Gộp các Record giống nhau theo 1 giá trị nào đó thành 1 nhóm và tính tổng, đếm số record, tìm giá trị lớn nhất, nhỏ nhất trong nhóm.
Cách dùng lệnh Totals
Trong cửa sổ Design View của Query:
Bước 1: Nhấp vào biểu tượng Totals (dấu sigma) trên Query Design Toolbar (hoặc dùng lệnh Totals trong View) sẽ hiện dòng Total dưới dòng Table.
Bước 2: Chọn giá trị trên dòng Total
Group by Gộp các dòng có giá trị giống nhau trên cột thành một nhóm.
Sum Tính tổng của các giá trị trên cột của nhóm.
Avg Tính giá trị trung bình của các giá trị trên cột của nhóm.
Max Tìm giá trị lớn nhất trong các giá trị trên cột của nhóm.
Min Tìm giá trị nhỏ nhất trong các giá trị trên cột của nhóm.
Chọn giá trị trên dòng Total
Count Đếm số Record có trong nhóm mà tại đó cột có giá trị.
First Tìm giá trị đầu tiên trong các giá trị trên cột của nhóm.
Last Tìm giá trị cuối cùng trong các giá trị trên cột của nhóm.
Expression Cho biết cột là biểu thức tính toán.
Where Cho biết cột là một biểu thức điều kiện dùng để lọc Record trước khi tính toán và không hiện nội dung cột khi xem kết quả.
Ví dụ 1
Cho biết mỗi khách hàng đã đặt bao nhiêu hóa đơn và tổng số tiền các hóa đơn.
Show Table: Hoa Don, Chi tiet Hoa don, San Pham
Ví dụ 2
Cho biết tổng số tiền các hóa đơn của mỗi tháng trong năm 2001.
Show Table: Hoa Don, Chi tiet Hoa don, San Pham
Lưu ý
Coät coù doøng Total = Where seõ khoâng ñöôïc hieän ra (Show = )
Lưu ý điều kiện WHERE trong Total
Nếu lọc Record trước khi tính toán: dùng Where.
Nếu lọc Record sau khi tính toán: không được dùng Where.
Ví duï 3:
Ví dụ 3
Cho biết mỗi khách hàng đã có bao nhiêu hóa đơn mua mặt hàng MB02 với số tiền >= 100$.
Show Table:
Hoa Don, San Pham, Chi tiet Hoa don
Ví dụ 4
Cho biết các khách hàng có tổng số tiền mua hàng >= 20000$.
Show Table:
Hoa Don, Chi tiet Hoa don, San Pham
Ứng dụng sàng lọc Record
Ví dụ 1: Trong file QuanLyKho.MDB - Hãy tạo query cho biết những hóa đơn có tổng số tiền là lớn nhất đã lập tại mỗi thành phố.
Bước 1: Tạo query TIEN HD để tính tổng số tiền cho từng hóa đơn:
Bước 1
Tạo query TIEN HD để tính tổng số tiền cho từng hóa đơn
Show Table:
HoaDon, Chitiet, SanPham, KhachHang
Bước 2
Tạo query MAX TP để để tính xem ở mỗi thành phố thì số tiền lớn nhất của 1 hóa đơn là bao nhiêu:
Show Query: TIEN HD
Bước 3
Tạo query kết quả theo yêu cầu dựa vào 2 query trên:
Show Query: TIEN HD và MAX TP (phải nối quan hệ giữa hai Query này thông qua field ThanhPho)
Show Query: TIEN HD và MAX TP
IV.6 CROSTAB QUERY
Crosstab Query là một loại Query dùng để tổng hợp trong đó:
giá trị của một số Field trong Table hoặc Query nguồn được dùng làm tiêu đề dòng
giá trị của một Field (hoặc một biểu thức) được dùng làm tiêu đề cột
giá trị tổng hợp của một Field (hoặc một biểu thức) là giá trị (value) của các ô trong Crosstab Query.
Nhờ Crosstab Query
có thể nhìn dữ liệu dưới dạng tổng quát hơn so với Select Query, đồng thời có thể tạo bảng thống kê với số cột biến động tùy thuộc vào dữ liệu trong các bảng.
Ví dụ
Giả sử có Query TONG HOP HOA DON như sau:
MaHD, MaKH, HoTen, TenSP, SoLuong, ThanhTien.
Cần tạo Query cho biết mỗi nhân viên đã bán mỗi sản phẩm được bao nhiêu tiền?
Nếu tạo bằng lệnh Total trong Select Query, bảng kết quả như sau:
Hình 4-8: Kết quả thực hiện bằng Total Query
Hình 4-9: Kết quả thực hiện bằng Crosstab Query
Tạo Crosstab Query bằng Wizard
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Crosstab Query Wizard, rồi chọn OK.
Bước 2: Chọn Table hoặc Query chứa các cột cần tính trong Crosstab Query (trả lời câu hỏi: " Which table or query contains the fields you want for the crosstab query results ?") ? ví dụ chọn TONG HOP HOA DON (bằng cách tại mục View hãy chọn Queries), nhấp Next.
Bước 3
Chọn các cột mà giá trị của nó làm tiêu đề dòng (Row Heading) cho Crosstab (ví dụ HoTen)
(Trả lời câu hỏi: "Which fields value do you want as row headings?"), xong nhấp Next.
Bước 4
Chọn cột mà giá trị của nó làm tiêu đề cột (Column Heading) (ví dụ TenSP), cho CrossTab.
(Trả lời câu hỏi: "Which fields value do you want as column headings?") xong nhấp Next.
Bước 5
Chọn giá trị (ThanhTien) và hàm tính (sum) cho vùng số liệu của Crosstab
(trả lời câu hỏi: "What number do you want calculated for each column and row intersection ?"), xong nhấp Next.
Chọn mục Yes, include row sums: để tạo thêm 1 dòng chứa kết quả tổng cộng số liệu của các cột tạo bởi Column Heading.
Bước 6
Đặt tên cho Query kết quả.
(trả lời câu hỏi: "What do you want to name your query ?"), xong nhấp Finish.
Tạo Crosstab Query không dùng Wizard
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ? OK.
Bước 2: Chọn table hoặc Query chứa các cột cần tính trong Crosstab Query tại hộp thoại Show Table.
Bước 3
Nhấp biểu tượng Query Type trên Query Desig toolbar rồi chọn Crosstab Query, tại cửa sổ Design View sẽ hiện dòng Crosstab dưới dòng Total.
Bước 4
Chọn các giá trị sau trên dòng Crosstab.
Row heading giá trị của cột chọn đặt ở vùng Row Heading của bảng Crosstab.
Colunm heading giá trị của cột chọn đặt ở vùng Column Heading của bảng Crosstab.
Value các giá trị của cột chọn (hoặc tính toán) ở vùng Value của bảng Crosstab
not show dùng cho cột có Total = Where
Show Table:
TONG HOP HOA DON
Bước 5
nhấp biểu tượng Open trên Query Design Toolbar để xem kết quả.
IV.7 CÁC LOẠI QUERY KHÁC
Gồm 2 loại
Các Query sử dụng Wizard
Các Query không sử dụng Wizard
Find Duplicates Query Wizard
Chức năng: tìm các Record trùng lặp giá trị trên một số cột nào đó.
Ví dụ: liệt kê các hóa đơn được lập trùng lặp (nhiều lần).
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Find Duplicates Query Wizard, rồi chọn OK.
Bước 2: Chọn bảng dữ liệu chứa dữ liệu trùng lặp cần tìm (ví dụ chọn bảng HOA DON), xong nhấp Next.
Bước 3: Chọn những cột chứa giá trị trùng lặp cần tìm (ví dụ chọn cột NgayLapHD), xong nhấp Next.
Bước 4: Chọn các cột muốn hiện ở bảng kết quả (MaHD, MaKH, .), nhấp Next.
Bước 5: Đặt tên cho Query kết quả, xong nhấp Finish.
Find Unmatched Query Wizard
Chức năng: tìm các Record trong một bảng (bảng A) không có trong bảng khác (bảng B)
Ví dụ: liệt kê các khách hàng chưa có hóa đơn lần nào.
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Find Unmatched Query Wizard, rồi chọn OK.
Bước 2: Chọn bảng A (ví dụ bảng KHACH HANG), xong nhấp Next.
Find Unmatched Query Wizard
Bước 3: Chọn bảng B (ví dụ bảng HOA DON), xong nhấp Next.
Bước 4: Chọn 2 cột quan hệ giữa 2 bảng và nhấp nút <=>, xong nhấp Next. (có thể xem ở mục Matching fields để kiểm tra)
Bước 5: Chọn các cột hiện ở bảng kết quả (MaKH, TenCty,.), nhấp Next.
Bước 6: Đặt tên cho Query kết quả, xong nhấp Finish.
Các Query không sử dụng Wizard
Make table Query
Chức năng: tạo một Table mới với dữ liệu lấy từ các Table hoặc Query khác đã có.
Ví dụ
Taïo Table HOA DON CUOI NAM 1993 goàm caùc coät MaHD, MaKH, NgayLapHD, TongTien cuûa caùc hoùa ñôn thaùng 11, 12 naêm 1993 (laáy töø table HOA DON).
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View -> OK.
Bước 2: Chọn Table hoặc Query chứa dữ liệu nguồn (ví dụ chọn các bảng Hoa Don, Chi tiet, San Pham).
Bước 3:
Nhấp biểu tượng Query Type trên Query Design toolbar rồi chọn Make-Table Query (hoặc chọn Menu View, Make-Table Query) sẽ hiện hộp thoại:
Hình 4-10
Trong hộp thoại Make Table
Table Name: gõ tên table cần tạo (HOA DON CUOI NAM 1993)
Chọn Current Database (table kết quả đặt trong CSDL đang làm việc) hoặc Another Database (table kết quả đặt trong CSDL khác và gõ tên file ở ô File Name)
Bước 4: Liệt kê các cột, điều kiện chọn các Record đưa vào bảng đích.
Ví dụ hãy đưa vào các nội dung sau:
Bước 5:
Nhấp nút Run trên Query Design Toolbar để thi hành lệnh tạo table (nút Design chỉ hiện các Record được chọn để kiểm tra đúng sai chứ không tạo table).
Update Query
Chức năng: Sửa đổi dữ liệu cho nhiều Record ở nhiều bảng theo điều kiện.
Ví dụ: sửa trên cột ThanhPho của Table KHACH HANG từ HCM thành Hồ Chí Minh.
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn Table chứa dữ liệu sửa ( KHACH HANG)
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Update Query.
Bước 4: Chọn Field: cột cần sửa; Update to: giá trị mới; Critera: điều kiện chọn Record được sửa.
Bước 5:
Nhấp nút Run để thi hành lệnh.
Append Query
Chức năng: Thêm vào cuối một table 1 số Record mới lấy từ các Table hoặc Query khác.
Ví dụ: Thêm vào cuối table HOA DON CUOI NAM 1993 các hóa đơn tháng 10 năm 1993 (lấy từ table HOA DON).
Cách tạo:
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn table hoặc Query chứa dữ liệu nguồn (ví dụ chọn các bảng Hoa Don, San Pham, Chi tiet Hoa don).
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Append Query sẽ hiện thị hộp thoại:
Hình 4-11: Khai báo Table đích
Trong đó
Table Name : choïn teân Table ñích (HOA DON CUOI NAM 1993) laø:
Choïn Current Database ( table choïn ôû trong CSDL ñang laøm vieäc) hoaëc Another Database (ôû trong CSDL khaùc vaø goõ teân file ôû oâ File Name)
Bước 4
Khai báo Field: Tên cột chứa dữ liệu nguồn;
Append to: Tên cột đích;
Criteria: điều kiện để Record được sao chép.
Khai báo như sau
Bước 5
nhaáp nuùt Run ñeå thi haønh.
Delete Query
Chức năng: Xóa các Record theo điều kiện.
Ví dụ: xóa trong table HOA DON CUOI NAM 1993 các hóa đơn có ngày lập sau 25/12/93.
Cách tạo
Bước 1: Chọn Object là Queries rồi nhấp New, chọn Design View ->OK.
Bước 2: Chọn Table chứa dữ liệu muốn xóa (HOA DON CUOI NAM 1993)
Bước 3: Nhấp biểu tượng Query Type trên Query Design Toolbar rồi chọn Delete Query.
Bước 4: Chọn điều kiện xóa.
Bước 5
nhấp nút Run để thi hành.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Ngọc Vũ An
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)