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 các truy vấn để tìm những 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 một loạt các câu hỏi kinh doanh, chẳng hạn như khi khách hàng cuối cùng được đặt đơn hàng hoặc năm quý đã được thành phố tốt nhất của bạn.
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ề một số hoặc phần trăm giá trị đã xác định từ đầu kết quả, ví dụ như năm trang phổ biến nhất trên một trang web. Bạn có thể sử dụng truy vấn giá trị trên cùng với bất kỳ loại giá trị nào-họ không 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 bạn 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 các số bán hàng cho một ngày đã cho cho mỗi thành phố mà công ty của bạn hoạt động. Trong trường hợp đó, các thành phố sẽ trở thành thể loại (bạn cần tìm kiế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 truy vấn giá trị hàng đầu để tìm các bản ghi chứa các 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 nhiều câu hỏi về doanh nghiệp, chẳng hạn như sau:
-
Ai đã làm việc bán hàng gần đây nhất?
-
Khi nào khách hàng đặt một đơn hàng cuối cùng?
-
Khi nào là ba ngày sinh nhật tiếp theo trong nhóm?
Để thực hiện truy vấn giá trị hàng đầu, hãy bắt đầu bằng cách tạo một truy vấn chọn. Sau đó, sắp xếp dữ liệu theo câu hỏi của bạn-dù bạn đang tìm kiếm trên cùng hoặc dưới cùng. Nếu bạn cần nhóm hoặc tóm tắt dữ liệu, hãy bật truy vấn chọn vào truy vấn tổng. Sau đó, bạn có thể sử dụng hàm tổng hợp, chẳng hạn như tối đa hoặc phút để trả về giá trị cao nhất hoặc thấp nhất, hoặc đầ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/thời gian. 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
Một bộ lọc thường tốt hơn nếu bạn có một ngày ghi nhớ cụ thể. Để xác định xem bạn có nên tạo truy vấn giá trị hàng đầu hay không, 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 kết quả phù hợ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 cho doanh số bán hàng giữa tháng tư và tháng bảy, bạn áp dụng bộ lọc.
-
Nếu bạn muốn trả về một số lượng bản ghi đã xác định có các ngày gần đây nhất hoặc mới nhất trong một trường và bạn không biết giá trị ngày chính xác hoặc không quan trọng, bạn tạo truy vấn giá trị hàng đầu. Ví dụ, để xem năm doanh số bán hàng 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ề việc 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 chọn trong cơ sở dữ liệu Access.
Chuẩn bị dữ liệu mẫu để theo dõi 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 |
Thuê ngày |
Barnhill |
Josh |
1 Main St. |
New York |
Hoa Kỳ |
Ngày 05 tháng 2-1968 |
Ngày 10 tháng 6-1994 |
Heloo |
Waleed |
52 1st St. |
Boston |
Hoa Kỳ |
Ngày 22 tháng 5-1957 |
Ngày 22 tháng 11, 1996 |
Pica |
36 |
3122 75th Ave. S.W. |
Seattle |
Hoa Kỳ |
Ngày 11 tháng 11-1960 |
Ngày 11 tháng 3, 2000 |
Bagel |
Jean Philippe |
1 Contoso Blvd. |
London |
Vương quốc Anh |
Ngày 22 tháng 3-1964 |
Ngày 22 tháng 6-1998 |
Giá |
Julius |
Calle Smith 2 |
Thành phố Mê-xi-cô |
Mexico |
Ngày 05 tháng 6-1972 |
Ngày 05 tháng 1-2002 |
Hughes |
Stine |
3122 75TH St. S. |
Seattle |
Hoa Kỳ |
Ngày 23 tháng 1, 1970 |
Ngày 23 tháng 4-1999 |
Riley |
Ste |
67 Big St. |
Tampa |
Hoa Kỳ |
Ngày 14 tháng 4-1964 |
Ngày 14 tháng 10-2004 |
Birkby |
Dana |
2 nosey Pkwy |
Portland |
Hoa Kỳ |
Ngày 29 tháng 10-1959 |
Ngày 29 tháng 3-1997 |
Bảng EventType
Mã chữ |
Kiểu sự kiện |
1 |
Khởi động sản phẩm |
2 |
Hàm Corporate |
3 |
Hàm riêng tư |
4 |
Quỹ raiser |
5 |
Triển lãm thương mại |
6 |
Buổi |
7 |
Hát |
8 |
Trưng |
9 |
Hội chợ đường phố |
Bảng Customers
CustomerID |
Công ty |
Liên hệ |
1 |
Contoso, Ltd. Dạng |
Jonathan Haas |
2 |
Tailspin Toys |
Ellen Adams |
3 |
Fabrikam |
Carol Philips |
4 |
Đồ chơi ở chót |
Lucio Iallo |
5 |
A. Mốc |
Mandar Samant |
6 |
Các hoạt động phiêu lưu |
Brian Burke |
7 |
Viện thiết kế |
Jaka Stele |
8 |
Trường học Mỹ thuật |
Hàm Milena Duomanova |
Bảng sự kiện
ID_sự_kiện |
Kiểu sự kiện |
Khách hàng |
Ngày sự kiện |
Giá |
1 |
Khởi động sản phẩm |
Contoso, Ltd. |
4/14/2011 |
$10,000 |
2 |
Hàm Corporate |
Tailspin Toys |
4/21/2011 |
$8.000 |
3 |
Triển lãm thương mại |
Tailspin Toys |
01/05/11 |
$25.000 |
4 |
Trưng |
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 |
Hát |
Trường học Mỹ thuật |
5/23/2011 |
$12,000 |
7 |
Khởi động sản phẩm |
A. Mốc |
6/1/2011 |
$15.000 |
8 |
Khởi động sản phẩm |
Đồ chơi ở chót |
6/18/2011 |
$21,000 |
9 |
Quỹ raiser |
Các hoạt động phiêu lưu |
6/22/2011 |
$1.300 |
10 |
Buổi |
Viện Thiết kế Đồ họa |
6/25/2011 |
$2.450 |
11 |
Buổi |
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 các bảng của khách hàng và loại sự kiện nằm ở bên "một" của mối quan hệ một-nhiều với bảng sự kiện. Trong trường hợp này, bảng các sự kiện chia sẻ các trường CustomerID và TypeID. Tổng các truy vấn được mô tả trong các phần tiếp theo sẽ không hoạt động mà không cần những mối quan hệ đó.
Dán dữ liệu mẫu vào các trang tính Excel
-
Khởi động Excel. Một sổ làm việc trống sẽ mở ra.
-
Nhấn SHIFT + F11 để chèn trang tính (bạn sẽ cần bốn).
-
Sao chép dữ liệu từ bảng mẫu vào một trang tính trống. Đưa vào đầu đề cột (hàng đầu tiên).
Tạo bảng cơ sở dữ liệu từ trang tính
-
Chọn dữ liệu từ trang tính đầu tiên, bao gồm các đầu đề cột.
-
Bấm chuột phải vào ngăn dẫn hướng, rồi bấm dán.
-
Bấm vào có để xác nhận rằng hàng đầu tiên chứa đầu đề cột.
-
Lặp lại các bước 1-3 cho từng 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 phần này sử dụng dữ liệu mẫu để minh họa quy trình tạo truy vấn giá trị cao nhất.
Tạo truy vấn các giá trị trên cùng cơ bản
-
Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.
-
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.
-
Thêm các trường bạn muốn sử dụng trong truy vấn của mình 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 trên một ô trống trong hàng trường .
Nếu bạn sử dụng bảng mẫu, hãy thêm tên, họ và ngày sinh mới.
-
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 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 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 một giá trị trong hàng sắp xếp chỉ dành cho các trường chứa ngày của bạn. Nếu bạn chỉ định thứ tự sắp xếp cho trường khác, truy vấn sẽ không trả về kết quả mà bạn muốn.
-
Trên tab thiết kế , trong nhóm công cụ , hãy 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 mà bạn muốn xem hoặc chọn một tùy chọn từ danh sách.
-
Bấm chạy để chạy truy vấn và hiển thị kết quả trong dạng xem biểu dữ liệu.
-
Lưu truy vấn thành Nextsinh Nhật.
Bạn có thể thấy rằng loại truy vấn giá trị trên cùng có thể trả lời các câu hỏi cơ bản, chẳng hạn như người là người cũ 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 để thêm 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 đã trả về ba ngày sinh của nhân viên tiếp theo.
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 quy trình trước đó. Bạn có thể làm theo cùng với truy vấn giá trị hàng đầu khác miễn là 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 tại 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 qua lại giữa các dạng xem, hãy bấm chuột phải vào tab ở phía trên cùng của truy vấn, rồi bấm vào dạng xem bạn muốn.
-
Trong ngăn dẫn hướng, bấm chuột phải vào truy vấn Nextsinh Nhật, rồi bấm dạng xem thiết kế.
-
Trong lưới thiết kế truy vấn, trong cột ở bên phải ngày sinh, hãy nhập các bước sau:
Monthborn: datePart ("m", [birthdate]).
Biểu thức này trích từ tháng từ ngày sinh bằng cách sử dụng hàm datePart . -
Trong cột tiếp theo của lưới thiết kế truy vấn, hãy nhập như sau:
dayofmonthborn: datePart ("d", [birthdate])
biểu thức này trích xuất ngày của tháng từ ngày sinh từ ngày sinh bằng cách sử dụng hàm datePart . -
Xóa các hộp kiểm trong hàng Hiển thị cho từng biểu thức mà bạn vừa nhập vào.
-
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.
-
Trong hàng tiêu chí của cột ngày sinh , nhập biểu thức sau: tháng ([ngày sinh]) > month (Date ()) hoặc month ([ngày sinh]) = month (Date ())
và Day ([ngày sinh]) >Day (Date ())
biểu thức này thực hiện các thao tác sau:-
Month ( [ngày sinh]) > month (Date ()) xác định rằng ngày sinh của mỗi nhân viên rơi vào một tháng trong tương lai.
-
Tháng ( [ngày sinh]) = month (Date ()) và Day ([ngày sinh]) >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.
Trong ngắn hạn, biểu thức này không bao gồm bất kỳ bản ghi nào mà sinh nhật xảy ra giữa ngày 1 tháng 1 và 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.
-
-
Trên tab thiết kế , trong nhóm thiết lập truy vấn , hãy nhập 3 vào hộp trả về .
-
Trên tab Thiết kế, trong nhóm Kết quả, bấm vào Chạy .
Lưu ý: Trong truy vấn của riêng bạn bằng dữ liệu của riêng bạn, đôi khi bạn có thể thấy nhiều bản ghi hơn bạn đã chỉ định. Nếu dữ liệu của bạn chứa nhiều bản ghi chia sẻ một giá trị nằm trong số 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 đó, ngay cả khi nó có nghĩa là trả về nhiều bản ghi hơn mong muốn.
Tìm những ngày gần đây nhất hoặc ít nhất đối với nhóm các 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 rơi vào các nhóm, chẳng hạn như các sự kiện được nhóm thành phố. Truy vấn tổng cộng là một truy vấn chọn sử dụng hàm tổng hợp (chẳng hạn như nhóm theo, Mtrong, tối đa, đếm, đầu tiênvà cuối cùng) để tính toán giá trị cho từng trường đầu ra.
Đưa trường mà bạn muốn sử dụng cho các 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 đưa vào các trường đầu ra khác – nói, tên của khách hàng khi bạn được nhóm theo kiểu sự kiện – truy vấn cũng sẽ sử dụng các trường này để tạo nhóm, thay đổi kết quả để họ không trả lời câu hỏi ban đầu của bạn. Để gắn nhãn các hàng bằng cách sử dụ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 cộng làm nguồn và thêm các trường bổ sung vào truy vấn đó.
Mẹo: Các truy vấn xây dựng trong các bước là 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 sự cố về một truy vấn phức tạp để làm việc, hãy cân nhắc xem bạn có thể chia 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 sự kiện và bảng mẫu eventtype để trả lời câu hỏi này:
Khi là sự kiện gần đây nhất của mỗi loại sự kiện, không bao gồm các buổi hòa nhạc?
-
Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.
-
Bấm đúp vào các sự kiện và bảng EventType.
Mỗi bảng xuất hiện ở phần trên cùng của trình thiết kế truy vấn. -
Bấm đúp vào trường EventType của bảng EventType và trường EventDate từ bảng sự kiện để thêm các trường vào lưới thiết kế truy vấn.
-
Trong lưới thiết kế truy vấn, trong hàng tiêu chí của trường eventtype , hãy nhập <>Concert.
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.
-
Trên tab Thiết kế, trong nhóm Hiển thị/Ẩn, bấm Tổng.
-
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 vào Max.
-
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.
-
Trong cửa sổ SQL, ở cuối mệnh đề SELECT, ngay sau khi từ khóa dưới dạng, thay thế trong Maxofeventdate với mostrecent.
-
Lưu truy vấn dưới dạng MostRecentEventByType.
Tạo truy vấn thứ hai để thêm dữ liệu
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?
-
Trên tab Tạo, trong nhóm Truy vấn, bấm Thiết kế Truy vấn.
-
Trên tab truy vấn , bấm đúp vào truy vấn MostRecentEventByType.
-
Trên tab bảng , bấm đúp vào bảng sự kiện và bảng khách hàng.
-
Trong trình thiết kế truy vấn, hãy bấm đúp vào các trường sau đây:
-
Trên bảng sự kiện, bấm đúp vào EventType.
-
Trên truy vấn MostRecentEventByType, bấm đúp vào MostRecent.
-
Trên bảng khách hàng, bấm đúp vào công ty.
-
-
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.
-
Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.