บทความนี้จะอธิบายวิธีการใช้คิวรีค่าสูงสุดและคิวรีแบบใช้หาผลรวมเพื่อค้นหาวันที่ล่าสุดหรือวันที่แรกสุดในชุดระเบียน ซึ่งจะช่วยคุณตอบคําถามทางธุรกิจที่หลากหลาย เช่น เมื่อลูกค้ามีการสั่งซื้อครั้งล่าสุด หรือไตรมาส 5 ไตรมาสใดที่คุณขายดีที่สุดตามเมือง
ในบทความนี้
ภาพรวม
คุณสามารถจัดอันดับข้อมูลและรีวิวรายการที่มีการจัดอันดับสูงสุดได้โดยใช้คิวรีค่าสูงสุด คิวรีค่าสูงสุดคือคิวรีแบบใช้เลือกข้อมูลซึ่งส่งกลับจํานวนหรือเปอร์เซ็นต์ของค่าที่ระบุจากด้านบนของผลลัพธ์ ตัวอย่างเช่น หน้ายอดนิยมห้าหน้าบนเว็บไซต์ คุณสามารถใช้คิวรีค่าสูงสุดกับค่าชนิดต่างๆ ได้ เนื่องจากค่าเหล่านั้นไม่ต้องเป็นตัวเลข
ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูลของคุณก่อนที่คุณจะจัดอันดับ คุณไม่ต้องใช้คิวรีค่าสูงสุด ตัวอย่างเช่น สมมติว่าคุณต้องการค้นหาหมายเลขยอดขายของวันที่ระบุของแต่ละเมืองที่บริษัทของคุณดําเนินการ ในกรณีดังกล่าว เมืองจะกลายเป็นประเภท (คุณต้องค้นหาข้อมูลต่อเมือง) เพื่อให้คุณใช้คิวรีผลรวม
เมื่อคุณใช้คิวรีค่าสูงสุดเพื่อค้นหาระเบียนที่มีวันที่ล่าสุดหรือวันที่แรกสุดในตารางหรือกลุ่มระเบียน คุณสามารถตอบคําถามทางธุรกิจต่างๆ ได้ เช่น
-
เมื่อเร็วๆ นี้ใครกันที่ขายได้มากที่สุด
-
ลูกค้าสั่งซื้อครั้งล่าสุดเมื่อใด
-
วันเกิดสามครั้งถัดไปในทีมเมื่อไหร่
เมื่อต้องการสร้างคิวรีค่าสูงสุด ให้เริ่มต้นด้วยการสร้างคิวรีแบบใช้เลือกข้อมูล จากนั้นจัดเรียงข้อมูลตามคําถามของคุณ ไม่ว่าคุณจะมองหาด้านบนหรือด้านล่าง ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูล ให้เปลี่ยนคิวรีแบบใช้เลือกข้อมูลเป็นคิวรีแบบใช้หาผลรวม จากนั้นคุณสามารถใช้ฟังก์ชันการรวม เช่น Max หรือMinเพื่อส่งกลับค่าสูงสุดหรือต่สุด หรือ FirstหรือLastเพื่อส่งกลับวันที่แรกสุดหรือวันที่ล่าสุด
บทความนี้ถือว่าค่าวันที่ที่คุณใช้มีชนิดข้อมูลวันที่/เวลา ถ้าค่าวันที่ของคุณอยู่ในเขตข้อมูล Text
พิจารณาใช้ตัวกรองแทนคิวรีค่าสูงสุด
โดยปกติแล้ว ตัวกรองจะดีกว่าถ้าคุณมีวันที่ที่เฉพาะเจาะจง เมื่อต้องการระบุว่าคุณควรสร้างคิวรีค่าสูงสุดหรือใช้ตัวกรอง ให้พิจารณาดังต่อไปนี้:
-
ถ้าคุณต้องการส่งกลับระเบียนทั้งหมดที่วันที่ตรงกัน อยู่ก่อนหรือหลังวันที่ที่ระบุ ให้ใช้ตัวกรอง ตัวอย่างเช่น เมื่อต้องการดูวันที่ของยอดขายระหว่างเดือนเมษายนและกรกฎาคม ให้คุณใช้ตัวกรอง
-
ถ้าคุณต้องการส่งกลับจํานวนระเบียนที่ระบุที่มีวันที่ล่าสุดหรือวันที่ล่าสุดในเขตข้อมูล และคุณจะไม่ทราบค่าวันที่ที่แน่นอนหรือไม่ทราบค่าวันที่หรือไม่ทราบคุณสร้างคิวรีค่าสูงสุด For example, to see the five best sales quarters, use a top values query.
For more information about creating and using filters, see the article Apply a filter to view select records in an Access database.
เตรียมข้อมูลตัวอย่างให้พร้อมตามตัวอย่าง
ขั้นตอนในบทความนี้จะใช้ข้อมูลในตารางต่อไปนี้
ตารางพนักงาน
นามสกุล |
ชื่อ |
ที่อยู่ |
เมือง |
การออกอากาศ CountryOrR |
วันเกิด |
วันที่ จ้าง |
Barnhill |
Josh |
1 Main St. |
New York |
USA |
05-ก.พ.-2511 |
10-มิ.ย.-2447 |
Heloo |
Waleded |
52 1st St. |
Boston |
USA |
22-พ.ค.-2490 |
22-พ.ย.-2549 |
พัชระ |
Guido |
3122 75th Ave. S.W. |
Seattle |
USA |
11-พ.ย.-2493 |
11-มี.ค.-2543 |
Bagel |
Philippe ของสุทยภาพ |
1 Contoso Blvd. |
London |
UK |
22-มี.ค.-1964 |
22-มิ.ย.-2541 |
ราคา |
Julian |
Calle Smith 2 |
Mexico City |
เม็กซิโก |
05-มิ.ย.-1972 |
05-ม.ค.-2545 |
Hughes |
Christine |
3122 75th St. S. |
Seattle |
USA |
23-ม.ค.-2513 |
23-เม.ย.-2542 |
มุขใจ |
ปัญญา |
67 1st St. |
Tampa |
USA |
14-เม.ย.-1964 |
14-ต.ค.-2547 |
Birkby |
ดานา |
2 Nosey Pkwy |
Portland |
USA |
29-ต.ค.-2492 |
29-มี.ค.-1997 |
ตาราง EventType
TypeID |
ชนิดของ เหตุการณ์ |
1 |
เปิดใช้ผลิตภัณฑ์ |
2 |
ฟังก์ชัน Corporate |
3 |
ฟังก์ชัน Private |
4 |
ผู้ระดมทุน |
5 |
งานแสดงสินค้า |
6 |
การบรรยาย |
7 |
บัตรบัตรกบัตร |
8 |
การไปแสดงสินค้า |
9 |
Street Fair |
ตารางลูกค้า
CustomerID |
บริษัท |
ที่ติดต่อ |
1 |
Contoso, Ltd. กราฟิก |
Jonathan Haas |
2 |
Tailspin Toys |
Ellen Adams |
3 |
Fabrikam |
Carol Philips |
4 |
Wingtip Toys |
Lucio Iallo |
5 |
A. Datum |
Manā samant |
6 |
Adventure Works |
Brian Burke |
7 |
Design Institute |
Jaka Stele |
8 |
โรงเรียนศิลปะ |
Milena Duomanova |
ตารางเหตุการณ์
ID เหตุการณ์ |
ชนิดของ เหตุการณ์ |
ลูกค้า |
วันที่ของ เหตุการณ์ |
ราคา |
1 |
เปิดใช้ผลิตภัณฑ์ |
Contoso, Ltd. |
4/14/2011 |
$10,000 |
2 |
ฟังก์ชัน Corporate |
Tailspin Toys |
4/21/2011 |
$8,000 |
3 |
งานแสดงสินค้า |
Tailspin Toys |
1/5/2554 |
$25,000 |
4 |
การไปแสดงสินค้า |
Graphic Design Institute |
5/13/2011 |
$4,500 |
5 |
งานแสดงสินค้า |
Contoso, Ltd. |
5/14/2011 |
$55,000 |
6 |
บัตรบัตรกบัตร |
โรงเรียนศิลปะ |
5/23/2011 |
$12,000 |
7 |
เปิดใช้ผลิตภัณฑ์ |
A. Datum |
6/1/2011 |
$15,000 |
8 |
เปิดใช้ผลิตภัณฑ์ |
Wingtip Toys |
6/18/2011 |
$21,000 |
9 |
ผู้ระดมทุน |
Adventure Works |
6/22/2011 |
$1,300 |
10 |
การบรรยาย |
Graphic Design Institute |
6/25/2011 |
$2,450 |
11 |
การบรรยาย |
Contoso, Ltd. |
4/7/2554 |
$3,800 |
1.2 |
Street Fair |
Graphic Design Institute |
4/7/2554 |
$5,500 |
หมายเหตุ: ขั้นตอนในส่วนนี้จะสมมติว่าตารางลูกค้าและชนิดเหตุการณ์อยู่บนด้าน "หนึ่ง" ของความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มกับตารางเหตุการณ์ ในกรณีนี้ ตารางเหตุการณ์จะแชร์เขตข้อมูล CustomerID และ TypeID คิวรีผลรวมที่อธิบายไว้ในส่วนถัดไปจะไม่ใช้งานถ้าไม่มีความสัมพันธ์เหล่านั้น
วางข้อมูลตัวอย่างลงในเวิร์กชีต Excel
-
เริ่มต้น Excel เวิร์กบุ๊กเปล่าจะเปิดขึ้น
-
กด SHIFT+F11 เพื่อแทรกเวิร์กชีต (คุณจะต้องใช้สี่)
-
คัดลอกข้อมูลจากตารางตัวอย่างแต่ละตารางลงในเวิร์กชีตเปล่า รวมส่วนหัวของคอลัมน์ (แถวแรก)
สร้างตารางฐานข้อมูลจากเวิร์กชีต
-
เลือกข้อมูลจากเวิร์กชีตแรก รวมถึงส่วนหัวของคอลัมน์
-
คลิกขวาที่บานหน้าต่างนําทาง แล้วคลิกวาง
-
คลิกใช่ เพื่อยืนยันว่าแถวแรกมีส่วนหัวของคอลัมน์อยู่
-
ทําซ้ําขั้นตอนที่ 1-3 ในแต่ละเวิร์กชีตที่เหลือ
ค้นหาวันที่ล่าสุดหรือน้อยที่สุด
ขั้นตอนในส่วนนี้ใช้ข้อมูลตัวอย่างเพื่อแสดงกระบวนการของการสร้างคิวรีค่าสูงสุด
สร้างคิวรีค่าสูงสุดพื้นฐาน
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก ออกแบบคิวรี
-
ดับเบิลคลิกที่ตาราง พนักงาน แล้วคลิกปิด
ถ้าคุณใช้ข้อมูลตัวอย่าง ให้เพิ่มตารางพนักงานลงในคิวรี
-
เพิ่มเขตข้อมูลที่คุณต้องการใช้ในคิวรีของคุณลงในตารางออกแบบ คุณสามารถดับเบิลคลิกที่แต่ละเขตข้อมูล หรือลากแล้วปล่อยแต่ละเขตข้อมูลบนเซลล์ว่าง ในแถว เขตข้อมูล
ถ้าคุณใช้ตารางตัวอย่าง ให้เพิ่มเขตข้อมูลชื่อ นามสกุล และวันเกิด
-
ในเขตข้อมูลที่มีค่าสูงสุดหรือค่าตด้านล่างของคุณ (เขตข้อมูลวันเกิด ถ้าคุณใช้ตารางตัวอย่าง) ให้คลิกแถวเรียงล>กล่างและเลือกจากน้อยไปหามากหรือจากมากไปหาน้อย
ลสั่งซื้อการจัดเรียงจากมากไปหาน้อยจะส่งกลับวันที่ล่าสุด และลสั่งซื้อการจัดเรียงจากน้อยไปหามากจะส่งกลับวันที่แรกสุด
สิ่งสำคัญ: คุณต้องตั้งค่าในแถว เรียง ล> บเขตข้อมูลที่มีวันที่ของคุณเท่านั้น If you specify a sort order for another field, the query does not return the results you want.
-
บนแท็บออกแบบในกลุ่ม เครื่องมือให้คลิกลูกศรลงที่อยู่ถัดจาก ทั้งหมด(รายการค่าสูงสุด) แล้วใส่จํานวนระเบียนที่คุณต้องการดู หรือเลือกตัวเลือกจากรายการ
-
คลิก เพื่อเรียกใช้คิวรีและแสดงผลลัพธ์ในมุมมองแผ่นข้อมูล
-
บันทึกคิวรีเป็น NextBirthDays
คุณจะเห็นว่าคิวรีค่าสูงสุดชนิดนี้สามารถตอบคําถามพื้นฐาน เช่น ใครคือบุคคลที่เก่าที่สุดหรืออายุน้อยที่สุดในบริษัทได้ ขั้นตอนถัดไปจะอธิบายวิธีการใช้นิพจน์และเกณฑ์อื่นๆ เพื่อเพิ่มประสิทธิภาพและความยืดหยุ่นให้กับคิวรี เกณฑ์ที่แสดงในขั้นตอนถัดไปจะส่งกลับวันเกิดของพนักงานสามคนถัดไป
เพิ่มเกณฑ์ลงในคิวรี
ขั้นตอนเหล่านี้ใช้คิวรีที่สร้างขึ้นในกระบวนงานก่อนหน้านี้ คุณสามารถติดตามคิวรีที่มีค่าสูงสุดอื่นได้ตราบใดที่คิวรีมีค่าวันที่/เวลาจริง ไม่ใช่ค่าข้อความ
เคล็ดลับ: ถ้าคุณต้องการเข้าใจวิธีการใช้งานของคิวรีนี้ให้ดีขึ้น ให้สลับระหว่างมุมมองออกแบบและมุมมองแผ่นข้อมูลในแต่ละขั้นตอน ถ้าคุณต้องการดูคิวรีโค้ดจริง ให้สลับไปยังมุมมอง SQL เมื่อต้องการสลับระหว่างมุมมอง ให้คลิกขวาที่แท็บที่ด้านบนของคิวรี แล้วคลิกมุมมองที่คุณต้องการ
-
ในบานหน้าต่างนําทาง ให้คลิกขวาที่คิวรี NextBirthDays แล้วคลิก มุมมองออกแบบ
-
ในตารางออกแบบคิวรี ในคอลัมน์ทางด้านขวาของ BirthDate ให้ใส่ดังต่อไปนี้:
MonthGrid: DatePart("m",[BirthDate])
นิพจน์นี้จะแยกเดือนจาก BirthDate โดยใช้ฟังก์ชันDatePart -
ในคอลัมน์ถัดไปของตารางออกแบบคิวรี ให้ใส่ดังต่อไปนี้:
DayOfMonthGrid: DatePart("d",[BirthDate])นิพจน์นี้จะแยกวันของเดือนจาก
BirthDate โดยใช้ฟังก์ชันDatePart -
ล้างกล่องกาเครื่องหมาย ในแถว แสดง ของนิพจน์แต่ละนิพจน์สองนิพจน์ที่คุณเพิ่งใส่
-
คลิกแถว เรียง ล>บแต่ละนิพจน์ แล้วเลือกจากน้อย ไปหามาก
-
ในแถวเกณฑ์ของคอลัมน์วันเกิด ให้พิมพ์นิพจน์ต่อไปนี้:
Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date()) ซึ่งนิพจน์นี้จะมีดังต่อไปนี้:-
เดือน( [วันเกิด]) > Month(Date()) ระบุว่าวันเกิดของพนักงานแต่ละคนอยู่ในเดือนในอนาคต
-
เดือน ([วันเกิด])= Month(Date()) And Day([Birth Date])>Day(Date()) ระบุว่า ถ้าวันเกิดเกิดขึ้นในเดือนปัจจุบัน วันเกิดจะอยู่ในช่วงหรือหลังจากวันปัจจุบัน
โดยสรุป นิพจน์นี้จะแยกระเบียนใดๆ ที่วันเกิดเกิดขึ้นระหว่างวันที่ 1 มกราคมและวันที่ปัจจุบัน
เคล็ดลับ: For more examples of query criteria expressions, see the article Examples of query criteria.
-
-
บนแท็บ ออกแบบ ในกลุ่ม การตั้งค่า คิว รี ให้พิมพ์ 3ในกล่อง ส่งกลับ
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้
หมายเหตุ: ในคิวรีของคุณเองโดยใช้ข้อมูลของคุณ บางครั้งคุณอาจเห็นระเบียนมากกว่าที่คุณระบุ ถ้าข้อมูลของคุณมีหลายระเบียนที่แชร์ค่าที่เป็นค่าสูงสุด คิวรีของคุณจะส่งกลับระเบียนดังกล่าวทั้งหมด แม้ว่าจะหมายถึงการส่งกลับระเบียนมากกว่าที่คุณต้องการ
ค้นหาวันที่ล่าสุดหรือน้อยที่สุดของกลุ่มระเบียน
คุณใช้คิวรีแบบใช้หาผลรวมเพื่อค้นหาวันที่แรกสุดหรือวันที่ล่าสุดของระเบียนที่แบ่งออกเป็นกลุ่ม เช่น เหตุการณ์ที่จัดกลุ่มตามเมือง คิวรีแบบใช้หาผลรวมคือคิวรีแบบใช้เลือกข้อมูลที่ใช้ฟังก์ชันการรวม (เช่นGroup By, Min,Max,Count,FirstและLast)เพื่อคํานวณค่าต่างๆ ของเขตข้อมูลผลลัพธ์แต่ละเขตข้อมูล
รวมเขตข้อมูลที่คุณต้องการใช้เป็นประเภท เพื่อจัดกลุ่มตาม และเขตข้อมูลที่มีค่าที่คุณต้องการสรุป ถ้าคุณรวมเขตข้อมูลผลลัพธ์อื่นๆ เช่น ชื่อของลูกค้าเมื่อคุณจัดกลุ่มตามชนิดเหตุการณ์ คิวรีจะใช้เขตข้อมูลเหล่านั้นเพื่อสร้างกลุ่ม การเปลี่ยนแปลงผลลัพธ์เพื่อให้ไม่ตอบคําถามเดิมของคุณ เมื่อต้องการติดป้ายแถวโดยใช้เขตข้อมูลอื่น ให้คุณสร้างคิวรีเพิ่มเติมที่ใช้คิวรีผลรวมเป็นแหล่งข้อมูล และเพิ่มเขตข้อมูลเพิ่มเติมลงในคิวรีนั้น
เคล็ดลับ: การสร้างคิวรีตามขั้นตอนเป็นกลยุทธ์ที่มีประสิทธิภาพมากในการตอบคําถามขั้นสูงกว่า ถ้าคุณมีปัญหาในการใช้งานคิวรีที่ซับซ้อน ให้พิจารณาว่าคุณสามารถแบ่งคิวรีให้เป็นชุดคิวรีที่ง่ายกว่าหรือไม่
สร้างคิวรีแบบใช้หาผลรวม
กระบวนงานนี้ ใช้ตารางตัวอย่าง Events และ ตารางตัวอย่าง EventType เพื่อ ตอบคําถามนี้:
กิจกรรมล่าสุดของกิจกรรมแต่ละประเภทคือเมื่อใด ยกเว้นบัตรเพลง
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก ออกแบบคิวรี
-
ดับเบิลคลิกที่ตาราง เหตุการณ์ และ ชนิดเหตุการณ์
ตารางแต่ละตารางจะปรากฏขึ้นในส่วนบนของตัวออกแบบคิวรี -
ดับเบิลคลิกที่เขตข้อมูลชนิดเหตุการณ์ของตาราง EventType และเขตข้อมูล EventDate จากตารางเหตุการณ์เพื่อเพิ่มเขตข้อมูลลงในตารางออกแบบคิวรี
-
ในตารางออกแบบคิวรี ในแถวเกณฑ์ของเขตข้อมูลEventTypeให้<>บัตรบัตร
เคล็ดลับ: For more examples of criteria expressions, see the article Examples of query criteria.
-
บนแท็บ ออกแบบ ในกลุ่ม แสดง/ ซ่อน ให้คลิกผลรวม
-
ในตารางออกแบบคิวรี ให้คลิก แถว ผลรวม ของเขตข้อมูล วันที่เหตุการณ์ แล้วคลิกสูงสุด
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก มุมมอง แล้วคลิก มุมมอง SQL
-
ในหน้าต่าง SQL ที่ส่วนท้ายของส่วนย่อย SELECT ให้แทนที่MaxOf1ventDateหลังคีย์เวิร์ด AS ด้วยMostRecent
-
บันทึกคิวรีเป็น MostRecentSventByType
สร้างคิวรีที่สองเพื่อเพิ่มข้อมูลเพิ่มเติม
กระบวนงานนี้ใช้คิวรี MostRecentSventByType จากกระบวนงานก่อนหน้าเพื่อตอบคําถามนี้:
ใครคือลูกค้าในเหตุการณ์ล่าสุดของแต่ละประเภทเหตุการณ์
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก ออกแบบคิวรี
-
บนแท็บ คิว รี ให้ดับเบิลคลิกคิวรี MostRecentSventByType
-
บนแท็บตาราง ให้ดับเบิลคลิกที่ตาราง เหตุการณ์ และตาราง ลูกค้า
-
ในตัวออกแบบคิวรี ให้ดับเบิลคลิกที่เขตข้อมูลต่อไปนี้
-
บนตาราง เหตุการณ์ ให้ดับเบิลคลิกที่ EventType
-
บนคิวรี MostRecentSventByType ให้ดับเบิลคลิกที่ MostRecent
-
บนตารางลูกค้า ให้ดับเบิลคลิกที่ บริษัท
-
-
ในตารางออกแบบคิวรี ในแถวเรียง ล> ของคอลัมน์ ชนิด เหตุการณ์ ให้เลือกจาก น้อยไปหามาก
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้