Áp dụng cho
Access 2010

Bài viết này giải thích cách sử dụng các truy vấn giá trị hàng đầu và tổng truy vấn để tìm các ngày gần đây nhất hoặc sớm nhất trong một tập hợp các bản ghi. Điều này có thể giúp bạn trả lời nhiều câu hỏi kinh doanh khác nhau, chẳng hạn như thời điểm khách hàng đặt hàng lần cuối hoặc năm quý nào là tốt nhất cho doanh số của bạn, theo thành phố.

Trong bài viết này

Tổng quan

Bạn có thể xếp hạng dữ liệu và xem lại các mục được xếp hạng cao nhất bằng cách sử dụng truy vấn giá trị hàng đầu. Truy vấn giá trị hàng đầu là một truy vấn chọn trả về số hoặc phần trăm giá trị đã xác định từ đầu kết quả, ví dụ: năm trang phổ biến nhất trên website. Bạn có thể sử dụng một truy vấn giá trị hàng đầu đối với bất kỳ loại giá trị nào - chúng không nhất thiết phải là số.

Nếu bạn muốn nhóm hoặc tóm tắt dữ liệu của mình trước khi xếp hạng, bạn không cần phải sử dụng truy vấn giá trị hàng đầu. Ví dụ: giả sử bạn cần tìm số doanh số cho một ngày nhất định cho từng thành phố nơi công ty bạn hoạt động. Trong trường hợp đó, các thành phố sẽ trở thành các danh mục (bạn cần tìm dữ liệu cho mỗi thành phố), vì vậy bạn sử dụng truy vấn tổng.

Khi bạn sử dụng một truy vấn giá trị hàng đầu để tìm các bản ghi chứa ngày mới nhất hoặc sớm nhất trong một bảng hoặc nhóm bản ghi, bạn có thể trả lời một loạt các câu hỏi về kinh doanh, chẳng hạn như sau:

  • Ai đã làm cho việc bán hàng nhiều nhất gần đây?

  • Khách hàng đặt hàng lần cuối khi nào?

  • Khi nào là ba ngày sinh nhật tiếp theo trong nhóm?

Để tạo truy vấn giá trị hàng đầu, hãy bắt đầu bằng cách tạo truy vấn chọn. Sau đó, sắp xếp dữ liệu theo câu hỏi của bạn – cho dù bạn đang tìm kiếm ở trên cùng hay dưới cùng. Nếu bạn cần nhóm hoặc tóm tắt dữ liệu, hãy biến truy vấn chọn thành truy vấn tổng. Sau đó, bạn có thể sử dụng hàm tổng hợp, chẳng hạn như Max hoặc Min để trả về giá trị cao nhất hoặc thấp nhất hoặc Giá trị đầu tiên hoặc Cuối cùng để trả về ngày sớm nhất hoặc gần nhất.

Bài viết này giả định rằng các giá trị ngày mà bạn sử dụng có kiểu dữ liệu Ngày/Giờ. Nếu giá trị ngày của bạn nằm trong trường Văn bản, .

Cân nhắc việc sử dụng bộ lọc thay vì truy vấn giá trị hàng đầu

Thường thì bộ lọc sẽ tốt hơn nếu bạn đã ghi nhớ một ngày cụ thể. Để xác định xem bạn nên tạo truy vấn giá trị hàng đầu hay áp dụng bộ lọc, hãy cân nhắc những điều sau đây:

  • Nếu bạn muốn trả về tất cả các bản ghi có ngày trùng khớp, trước hoặc muộn hơn một ngày cụ thể, hãy sử dụng bộ lọc. Ví dụ: để xem ngày bán hàng từ tháng 4 đến tháng 7, bạn áp dụng bộ lọc.

  • Nếu bạn muốn trả về số lượng bản ghi đã xác định có ngày gần đây nhất hoặc gần nhất trong một trường và bạn không biết giá trị ngày chính xác hoặc chúng không quan trọng, bạn hãy tạo một truy vấn giá trị hàng đầu. Ví dụ: để xem năm quý doanh số tốt nhất, hãy sử dụng truy vấn giá trị hàng đầu.

Để biết thêm thông tin về cách tạo và sử dụng bộ lọc, hãy xem bài viết Áp dụng bộ lọc để xem các bản ghi được chọn trong cơ sở dữ liệu Access.

Đầu Trang

Chuẩn bị dữ liệu mẫu để làm theo cùng với các ví dụ

Các bước trong bài viết này sử dụng dữ liệu trong các bảng mẫu sau đây.

Bảng Nhân viên   

Họ

Tên

Địa chỉ

Thành phố

CountryOrR egion

Ngày Sinh

Ngày tuyển dụng

Barnhill

Josh

1 Main St.

New York

Hoa Kỳ

Ngày 5 tháng 2 năm 1968

Ngày 10 tháng 6 năm 1994

Heloo

Waleed

52 1st St.

Boston

Hoa Kỳ

Ngày 22 tháng 5 năm 1957

Ngày 22 tháng 11 năm 1996

Pica

Guido

3122 75th Ave. S.W.

Seattle

Hoa Kỳ

Ngày 11 tháng 11 năm 1960

Ngày 11 tháng 3 năm 2000

Bánh mì tròn

Jean Philippe

1 Contoso Blvd.

London

Vương quốc Anh

Ngày 22 tháng 3 năm 1964

Ngày 22 tháng 6 năm 1998

Giá

Julian

Calle Smith 2

Thành phố Mê-xi-cô

Mexico

Ngày 5 tháng 6 năm 1972

Ngày 05 tháng 1 năm 2002

Hughes

Christine

3122 75th St. S.

Seattle

Hoa Kỳ

Ngày 23 tháng 1 năm 1970

Ngày 23 tháng 4 năm 1999

Riley

Steve

67 Big St.

Tampa

Hoa Kỳ

Ngày 14 tháng 4 năm 1964

Ngày 14 tháng 10 năm 2004

Birkby

Dana

2 Mũi Pkwy

Portland

Hoa Kỳ

Ngày 29 tháng 10 năm 1959

Ngày 29 tháng 3 năm 1997

Bảng EventType   

TypeID

Loại Sự kiện

1

Ra mắt Sản phẩm

2

Chức năng công ty

3

Hàm Private

4

Gây quỹ

5

Triển lãm Thương mại

6

Bài giảng

7

Buổi hoà nhạc

8

Triển lãm

9

Hội chợ đường phố

Bảng Customers   

CustomerID

Công ty

Liên hệ

1

Contoso, Ltd. Đồ họa

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Đồ dùng mách nước

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Brian Burke

7

Viện Thiết kế

Bia jaka

8

Trường Mỹ thuật

Milena Duomanova

Bảng Events   

ID_sự_kiện

Loại Sự kiện

Khách hàng

Ngày Sự kiện

Giá

1

Ra mắt Sản phẩm

Contoso, Ltd.

4/14/2011

$10,000

2

Chức năng công ty

Tailspin Toys

4/21/2011

$8.000

3

Triển lãm Thương mại

Tailspin Toys

01/05/11

$25.000

4

Triển lãm

Viện Thiết kế Đồ họa

5/13/2011

$4.500

5

Triển lãm Thương mại

Contoso, Ltd.

5/14/2011

$55.000

6

Buổi hoà nhạc

Trường Mỹ thuật

5/23/2011

$12,000

7

Ra mắt Sản phẩm

A. Datum

6/1/2011

$15.000

8

Ra mắt Sản phẩm

Đồ dùng mách nước

6/18/2011

$21,000

9

Gây quỹ

Adventure Works

6/22/2011

$1.300

10

Bài giảng

Viện Thiết kế Đồ họa

6/25/2011

$2.450

11

Bài giảng

Contoso, Ltd.

04/07/2011

$3.800

12

Hội chợ đường phố

Viện Thiết kế Đồ họa

04/07/2011

$5,500

Lưu ý: Các bước trong phần này giả định rằng bảng Khách hàng và Loại Sự kiện nằm ở phía "một" của mối quan hệ một-nhiều với bảng Events. Trong trường hợp này, bảng Events sẽ chia sẻ các trường CustomerID và TypeID. Các truy vấn tổng được mô tả trong các phần tiếp theo sẽ không hoạt động nếu không có các mối quan hệ đó.

Dán dữ liệu mẫu vào trang tính Excel

  1. Khởi động Excel. Một sổ làm việc trống sẽ mở ra.

  2. Nhấn SHIFT+F11 để chèn trang tính (bạn sẽ cần bốn trang).

  3. Sao chép dữ liệu từ từng bảng mẫu vào một trang tính trống. Bao gồm đầu đề cột (hàng đầu tiên).

Tạo bảng cơ sở dữ liệu từ trang tính

  1. Chọn dữ liệu từ trang tính đầu tiên, bao gồm đầu đề cột.

  2. Bấm chuột phải vào Ngăn Dẫn hướng, rồi bấm Dán.

  3. Bấm để xác nhận rằng hàng đầu tiên chứa đầu đề cột.

  4. Lặp lại các bước từ 1-3 cho mỗi trang tính còn lại.

Tìm ngày gần đây nhất hoặc ít nhất

Các bước trong mục này sử dụng dữ liệu mẫu để minh họa cho quy trình tạo truy vấn giá trị hàng đầu.

Tạo truy vấn giá trị hàng đầu cơ bản

  1. Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.

  2. Bấm đúp vào bảng Nhân viên, rồi bấm đóng.

    Nếu bạn sử dụng dữ liệu mẫu, hãy thêm bảng Nhân viên vào truy vấn.

  3. Thêm các trường bạn muốn sử dụng trong truy vấn vào lưới thiết kế. Bạn có thể bấm đúp vào từng trường hoặc kéo và thả từng trường vào một ô trống trong hàng Trường.

    Nếu bạn sử dụng bảng mẫu, hãy thêm các trường Tên, Họ và Ngày Sinh.

  4. Trong trường có chứa các giá trị trên cùng hoặc dưới cùng của bạn (trường Ngày Sinh, nếu bạn sử dụng bảng mẫu), hãy bấm vào hàng Sắp xếp và chọn Tăng dần hoặc Giảm dần.

    Thứ tự sắp xếp giảm dần sẽ trả về ngày gần đây nhất và thứ tự sắp xếp Tăng dần trả về ngày sớm nhất.

    Quan trọng: Bạn phải đặt giá trị trong hàng Sắp xếp chỉ cho các trường có chứa ngày của bạn. Nếu bạn xác định thứ tự sắp xếp cho một trường khác, truy vấn sẽ không trả về kết quả bạn muốn.

  5. Trên tab Thiết kế, trong nhóm Công cụ, bấm vào mũi tên xuống bên cạnh Tất cả (danh sách Giá trị Hàng đầu), rồi nhập số bản ghi bạn muốn xem hoặc chọn một tùy chọn từ danh sách.

  6. Bấm Chạy Ảnh nút để chạy truy vấn và hiển thị kết quả trong dạng xem Biểu dữ liệu.

  7. Lưu truy vấn dưới dạng NextBirthDays.

Bạn có thể thấy loại truy vấn giá trị hàng đầu này có thể trả lời các câu hỏi cơ bản, chẳng hạn như ai là người già nhất hoặc trẻ nhất trong công ty. Các bước tiếp theo sẽ giải thích cách sử dụng biểu thức và các tiêu chí khác để tăng sức mạnh và tính linh hoạt cho truy vấn. Tiêu chí được hiển thị trong bước tiếp theo sẽ trả về ba ngày sinh tiếp theo của nhân viên.

Thêm tiêu chí vào truy vấn

Các bước này sử dụng truy vấn được tạo trong thủ tục trước. Bạn có thể thực hiện theo cùng với một truy vấn giá trị hàng đầu khác miễn là truy vấn đó chứa dữ liệu Ngày/Giờ thực tế, không phải giá trị văn bản.

Mẹo:  Nếu bạn muốn hiểu rõ hơn về cách truy vấn này hoạt động, hãy chuyển đổi giữa dạng xem Thiết kế và dạng xem Biểu dữ liệu ở mỗi bước. Nếu bạn muốn xem mã truy vấn thực tế, hãy chuyển sang dạng xem SQL. Để chuyển đổi giữa các dạng xem, hãy bấm chuột phải vào tab ở đầu truy vấn, rồi bấm vào dạng xem bạn muốn.

  1. Trong Ngăn Dẫn hướng, bấm chuột phải vào truy vấn NextBirthDays, rồi bấm Dạng xem Thiết kế.

  2. Trong lưới thiết kế truy vấn, trong cột bên phải Ngày_Sinh, nhập như sau:MonthBorn: DatePart("m",[Ngày_Sinh]).Biểu thức này trích xuất tháng từ Ngày_Sinh bằng cách sử dụng hàm DatePart .

  3. Trong cột tiếp theo của lưới thiết kế truy vấn, nhập như sau:DayOfMonthBorn: DatePart("d",[BirthDate])Biểu thức này trích xuất ngày trong tháng từ Ngày_Sinh bằng cách sử dụng hàm DatePart .

  4. Bỏ chọn các hộp kiểm trong hàng Hiển thị cho mỗi biểu thức trong hai biểu thức bạn vừa nhập.

  5. Bấm vào hàng Sắp xếp cho từng biểu thức, rồi chọn Tăng dần.

  6. Trong hàng Tiêu chí của cột Ngày Sinh, nhập biểu thức sau:Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Biểu thức này thực hiện như sau:

    • Month( [Ngày Sinh]) > Month(Date()) xác định rằng ngày sinh của mỗi nhân viên sẽ rơi vào một tháng trong tương lai.

    • The Month([Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) xác định rằng nếu ngày sinh xảy ra trong tháng hiện tại, sinh nhật sẽ rơi vào hoặc sau ngày hiện tại.

      Nói ngắn gọn, biểu thức này loại trừ mọi bản ghi có ngày sinh trong khoảng từ ngày 1 tháng 1 đến ngày hiện tại.

      Mẹo:  Để biết thêm ví dụ về biểu thức tiêu chí truy vấn, hãy xem bài viết Ví dụ về tiêu chí truy vấn.

  7. Trên tab Thiết kế , trong nhóm Thiết lập Truy vấn, nhập 3 vào hộp Trả về.

  8. Trên tab Thiết kế, trong nhóm Kết quả, bấm vào Chạy Ảnh nút.

Lưu ý:  Trong truy vấn của riêng bạn bằng cách sử dụng dữ liệu của riêng bạn, đôi khi bạn có thể nhìn thấy nhiều bản ghi hơn bạn đã xác định. Nếu dữ liệu của bạn chứa nhiều bản ghi có chung một giá trị nằm trong các giá trị hàng đầu, truy vấn của bạn sẽ trả về tất cả các bản ghi như vậy ngay cả khi điều đó có nghĩa là trả về nhiều bản ghi hơn mong muốn.

Đầu Trang

Tìm ngày gần đây nhất hoặc ít nhất cho các nhóm bản ghi

Bạn sử dụng truy vấn tổng để tìm ngày sớm nhất hoặc mới nhất cho các bản ghi thuộc các nhóm, chẳng hạn như các sự kiện được nhóm theo thành phố. Truy vấn tổng là một truy vấn chọn sử dụng các hàm tổng hợp (chẳng hạn như Nhóm Theo, Mtrong, Lớn nhất, Count, Đầu tiên và Cuốicùng) để tính toán giá trị cho từng trường đầu ra.

Bao gồm trường bạn muốn sử dụng cho thể loại – để nhóm theo – và trường có giá trị mà bạn muốn tóm tắt. Nếu bạn bao gồm các trường đầu ra khác – ví dụ: tên của khách hàng khi bạn đang nhóm theo loại sự kiện – truy vấn cũng sẽ sử dụng các trường đó để tạo nhóm, thay đổi kết quả sao cho chúng không trả lời câu hỏi ban đầu của bạn. Để đánh nhãn cho hàng bằng các trường khác, bạn tạo một truy vấn bổ sung sử dụng truy vấn tổng dưới dạng nguồn và thêm các trường bổ sung vào truy vấn đó.

Mẹo:  Xây dựng truy vấn theo các bước là một chiến lược rất hiệu quả để trả lời các câu hỏi nâng cao hơn. Nếu bạn đang gặp khó khăn khi có được một truy vấn phức tạp để hoạt động, hãy cân nhắc xem liệu bạn có thể chia nhỏ truy vấn thành một chuỗi truy vấn đơn giản hơn hay không.

Tạo truy vấn tổng

Quy trình này sử dụng bảng mẫu Events vàbảng mẫu EventType để trả lời câu hỏi này:

Sự kiện gần đây nhất của mỗi loại sự kiện là khi nào, ngoại trừ các buổi hòa nhạc?

  1. Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.

  2. Bấm đúp vào bảng Events và EventType. Mỗi bảng sẽ xuất hiện trong mục trên cùng của trình thiết kế truy vấn.

  3. Bấm đúp vào trường EventType của bảng EventType và trường EventDate từ bảng Events để thêm các trường vào lưới thiết kế truy vấn.

  4. Trong lưới thiết kế truy vấn, trong hàng Tiêu chí của trường EventType , nhập<> Hòa nhạc.

    Mẹo:  Để biết thêm ví dụ về biểu thức tiêu chí, hãy xem bài viết Ví dụ về tiêu chí truy vấn.

  5. Trên tab Thiết kế, trong nhóm Hiển thị/Ẩn, bấm Tổng.

  6. Trong lưới thiết kế truy vấn, bấm vào hàng Tổng của trường EventDate, rồi bấm Tối đa.

  7. Trên tab Thiết kế, trong nhóm Kết quả, bấm Dạng xem và sau đó bấm Dạng xem SQL.

  8. Trong cửa sổ SQL, ở cuối mệnh đề SELECT, ngay sau từ khóa AS, thay thế MaxOfEventDate bằng MostRecent.

  9. Lưu truy vấn dưới dạng MostRecentEventByType.

Tạo truy vấn thứ hai để thêm nhiều dữ liệu hơn

Quy trình này sử dụng truy vấn MostRecentEventByType từ thủ tục trước đó để trả lời câu hỏi này:

Khách hàng tại sự kiện gần đây nhất của mỗi loại sự kiện là ai?

  1. Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.

  2. Trên tab Truy vấn , bấm đúp vào truy vấn MostRecentEventByType.

  3. Trên tab Bảng , bấm đúp vào bảng Events và bảng Customers.

  4. Trong trình thiết kế truy vấn, bấm đúp vào các trường sau:

    1. Trên bảng Events, bấm đúp vào EventType.

    2. Trên truy vấn MostRecentEventByType, bấm đúp vào MostRecent.

    3. Trên bảng Khách hàng, bấm đúp vào Công ty.

  5. Trong lưới thiết kế truy vấn, trong hàng Sắp xếp của cột EventType , chọn Tăng dần.

  6. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Đầu Trang

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.