Bài giảng Access - Chương IV: Query - Bảng vấn tin
• 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
á 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 TotalCount Đế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 PhamVí dụ 2Cho 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 PhamLưu ý Cột có dòng Total = Where sẽ không được hiện ra (Show = ) Lưu ý điều kiện WHERE trong TotalNế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í dụ 3:Ví dụ 3Cho 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 donVí dụ 4Cho 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 RecordVí 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 1Tạo query TIEN HD để tính tổng số tiền cho từng hóa đơn Show Table: HoaDon, Chitiet, SanPham, KhachHangBước 2Tạ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 HDBước 3Tạ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 TPIV.6 CROSTAB QUERYCrosstab 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ònggiá 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 QueryHình 4-9: Kết quả thực hiện bằng Crosstab Query Tạo Crosstab Query bằng WizardBướ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 3Chọ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 4Chọ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 5Chọ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 WizardBướ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 4Chọ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 = WhereShow Table: TONG HOP HOA DONBướ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ÁCGồm 2 loại Các Query sử dụng WizardCác Query không sử dụng WizardFind Duplicates Query WizardChứ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 WizardChứ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 WizardBướ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 WizardMake table QueryChứ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ụ Tạo Table HOA DON CUOI NAM 1993 gồm các cột MaHD, MaKH, NgayLapHD, TongTien của các hóa đơn tháng 11, 12 năm 1993 (lấy từ table HOA DON).Cách tạoBướ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-10Trong hộp thoại Make TableTable 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 QueryChứ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ạoBướ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 QueryChứ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 đíchTrong đó Table Name : chọn tên Table đích (HOA DON CUOI NAM 1993) là: Chọn Current Database ( table chọn ở trong CSDL đang làm việc) hoặc Another Database (ở trong CSDL khác và gõ tên file ở ô 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ư sauBước 5 nhấp nút Run để thi hành.Delete QueryChứ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ạoBướ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 5nhấp nút Run để thi hành.
File đính kèm:
- Chuong IV QUERY VAN TIN.ppt