บทความนี้อธิบายวิธีการใช้คิวรีค่าสูงสุดและคิวรีผลรวมเพื่อค้นหาวันที่ล่าสุดหรือวันที่แรกสุดในชุดระเบียน วิธีนี้จะช่วยให้คุณตอบคําถามทางธุรกิจได้หลากหลาย เช่น เมื่อลูกค้าทําการสั่งซื้อครั้งล่าสุด หรือห้าไตรมาสใดที่คุณขายได้ดีที่สุดตามเมือง
ในบทความนี้
ภาพรวม
คุณสามารถจัดอันดับข้อมูลและรีวิวรายการที่จัดอันดับสูงสุดได้โดยใช้คิวรีที่มีค่าสูงสุด คิวรีที่มีค่าสูงสุดคือคิวรีแบบใช้เลือกข้อมูลที่ส่งกลับจํานวนที่ระบุหรือเปอร์เซ็นต์ของค่าจากด้านบนสุดของผลลัพธ์ ตัวอย่างเช่น หน้ายอดนิยมห้าหน้าบนเว็บไซต์ คุณสามารถใช้คิวรีค่าสูงสุดกับค่าชนิดใดก็ได้ โดยไม่จําเป็นต้องเป็นตัวเลข
ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูลของคุณก่อนที่คุณจะจัดอันดับ คุณไม่จําเป็นต้องใช้คิวรีค่าสูงสุด ตัวอย่างเช่น สมมติว่าคุณต้องการค้นหาหมายเลขการขายสําหรับวันที่ที่กําหนดสําหรับแต่ละเมืองที่บริษัทของคุณดําเนินงานอยู่ ในกรณีดังกล่าว เมืองจะกลายเป็นประเภท (คุณต้องค้นหาข้อมูลต่อเมือง) คุณจึงใช้คิวรีผลรวมได้
เมื่อคุณใช้คิวรีที่มีค่าสูงสุดเพื่อค้นหาระเบียนที่มีวันที่ล่าสุดหรือวันที่แรกสุดในตารางหรือกลุ่มระเบียน คุณสามารถตอบคําถามทางธุรกิจต่างๆ ได้ ดังต่อไปนี้
-
ช่วงหลังนี้มีใครทํายอดขายได้มากที่สุดบ้าง
-
ลูกค้าทําการสั่งซื้อครั้งล่าสุดเมื่อใด
-
สามวันเกิดในทีมจะมาถึงเมื่อไหร่
เมื่อต้องการสร้างคิวรีที่มีค่าสูงสุด ให้เริ่มต้นด้วยการสร้างคิวรีแบบใช้เลือกข้อมูล จากนั้นเรียงลําดับข้อมูลตามคําถามของคุณไม่ว่าคุณจะกําลังมองหาด้านบนหรือด้านล่าง ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูล ให้เปลี่ยนคิวรีแบบใช้เลือกข้อมูลเป็นคิวรีแบบใช้เลือกข้อมูล คุณสามารถใช้ฟังก์ชันการรวม เช่น Max หรือ Min เพื่อส่งกลับค่าสูงสุดหรือต่ําสุด หรือ ชื่อ หรือ สุดท้าย เพื่อส่งกลับวันที่แรกสุดหรือล่าสุด
บทความนี้ถือว่าค่าวันที่ที่คุณใช้มีชนิดข้อมูล Date/Time ถ้าค่าวันที่ของคุณอยู่ในเขตข้อมูลข้อความ
พิจารณาใช้ตัวกรองแทนคิวรีที่มีค่าสูงสุด
โดยปกติแล้ว ตัวกรองจะดีกว่าถ้าคุณมีวันที่ที่เฉพาะเจาะจงอยู่ในใจ เมื่อต้องการกําหนดว่าคุณควรสร้างคิวรีค่าสูงสุดหรือนําตัวกรองไปใช้ ให้พิจารณาดังต่อไปนี้:
-
ถ้าคุณต้องการส่งกลับระเบียนทั้งหมดที่ตรงกับวันที่ ก่อนหน้า หรือหลังจากวันที่ที่ระบุ ให้ใช้ตัวกรอง ตัวอย่างเช่น เมื่อต้องการดูวันที่สําหรับยอดขายระหว่างเดือนเมษายนและกรกฎาคม ให้คุณใช้ตัวกรอง
-
ถ้าคุณต้องการส่งกลับจํานวนที่ระบุของระเบียนที่มีวันที่ล่าสุดหรือวันที่ล่าสุดในเขตข้อมูล และคุณไม่ทราบค่าวันที่ที่แน่นอน หรือไม่สําคัญ คุณสร้างคิวรีค่าสูงสุด ตัวอย่างเช่น เมื่อต้องการดูไตรมาสยอดขายที่ดีที่สุดห้าไตรมาส ให้ใช้คิวรีที่มีค่าสูงสุด
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและการใช้ตัวกรอง ให้ดูบทความ นําตัวกรองไปใช้เพื่อดูระเบียนที่เลือกในฐานข้อมูล Access
เตรียมข้อมูลตัวอย่างเพื่อทําตามตัวอย่าง
ขั้นตอนในบทความนี้ใช้ข้อมูลในตารางตัวอย่างต่อไปนี้
ตารางพนักงาน
|
นามสกุล |
ชื่อ |
ที่อยู่ |
เมือง |
ประเทศชาติ |
วันเกิด |
วันที่ จ้างงาน |
|
Barnhill |
Josh |
1 Main St. |
New York |
USA |
05-ก.พ. 2511 |
10 มิ.ย. 2537 |
|
Heloo |
เวลส์ |
52 1st St. |
Boston |
USA |
22-พ.ค.-พ.ศ. 2500 |
22 พ.ย. 2539 |
|
พัชระ |
Guido |
3122 75th Ave. S.W. |
Seattle |
USA |
11-พ.ย. 2503 |
วันที่ 11 มี.ค. 2543 |
|
เบเกิล |
Jean Philippe |
1 Contoso Blvd. |
London |
UK |
22 มี.ค. 2507 |
22-มิ.ย. 2541 |
|
ราคา |
จูเลียน |
Calle Smith 2 |
Mexico City |
เม็กซิโก |
05-มิ.ย. 2515 |
05-ม.ค.-2545 |
|
ฮิวส์ |
คริสตีน |
3122 75th St. S. |
ซีแอตเทิล |
USA |
23 ม.ค. 2513 |
23-เม.ย.-พ.ศ. 2542 |
|
มุขใจ |
ปัญญา |
67 1st St. |
Tampa |
USA |
14 เม.ย.-พ.ศ. 2507 |
14-ต.ค.-2547 |
|
Birkby |
ดานา |
2 จมูก pkwy |
พอร์ตแลนด์ |
USA |
29 ต.ค. 2492 |
29-มี.ค. 2540 |
ตาราง EventType
|
TypeID |
ชนิด เหตุการณ์ |
|
1 |
การเปิดใช้ผลิตภัณฑ์ |
|
2 |
หน้าที่ขององค์กร |
|
3 |
ฟังก์ชันส่วนตัว |
|
4 |
ผู้ระดมทุน |
|
5 |
งานแสดงสินค้า |
|
6 |
บรรยาย |
|
7 |
คอนเสิร์ต |
|
8 |
แสดง |
|
9 |
งานสตรีทแฟร์ |
ตารางลูกค้า
|
CustomerID |
บริษัท |
ที่ติดต่อ |
|
1 |
Contoso, Ltd. กราฟิก |
โจนาธาน ฮาส |
|
2 |
Tailspin Toys |
Ellen Adams |
|
3 |
Fabrikam |
Carol Philips |
|
4 |
ของเล่นปีก |
Lucio Iallo |
|
5 |
A. ดาตัม |
Mandar Samant |
|
6 |
Adventure Works |
Brian Burke |
|
7 |
สถาบันออกแบบ |
Jaka Stele |
|
8 |
คณะวิจิตรศิลป์ |
Milena Duomanova |
ตารางเหตุการณ์
|
ID เหตุการณ์ |
ชนิด เหตุการณ์ |
ลูกค้า |
วันที่ ของเหตุการณ์ |
ราคา |
|
1 |
การเปิดใช้ผลิตภัณฑ์ |
Contoso, Ltd. |
4/14/2011 |
$10,000 |
|
2 |
หน้าที่ขององค์กร |
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. ดาตัม |
6/1/2011 |
$15,000 |
|
8 |
การเปิดใช้ผลิตภัณฑ์ |
ของเล่นปีก |
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 |
งานสตรีทแฟร์ |
Graphic Design Institute |
4/7/2554 |
$5,500 |
หมายเหตุ: ขั้นตอนในส่วนนี้ถือว่าตารางลูกค้าและชนิดเหตุการณ์อยู่บนด้าน "หนึ่ง" ของความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มกับตารางเหตุการณ์ ในกรณีนี้ ตารางเหตุการณ์จะแชร์เขตข้อมูล CustomerID และ TypeID คิวรีผลรวมที่อธิบายในส่วนถัดไปจะไม่ทํางานหากไม่มีความสัมพันธ์เหล่านั้น
วางข้อมูลตัวอย่างลงในเวิร์กชีต Excel
-
เริ่มต้น Excel เวิร์กบุ๊กเปล่าจะเปิดขึ้น
-
กด SHIFT+F11 เพื่อแทรกเวิร์กชีต (คุณจะต้องมีสี่รายการ)
-
คัดลอกข้อมูลจากแต่ละตารางตัวอย่างลงในเวิร์กชีตเปล่า รวมส่วนหัวของคอลัมน์ (แถวแรก)
สร้างตารางฐานข้อมูลจากเวิร์กชีต
-
เลือกข้อมูลจากเวิร์กชีตแรก รวมถึงส่วนหัวของคอลัมน์
-
คลิกขวาที่บานหน้าต่างนําทาง แล้วคลิก วาง
-
คลิก ใช่ เพื่อยืนยันว่าแถวแรกมีส่วนหัวของคอลัมน์
-
ทําซ้ําขั้นตอนที่ 1-3 สําหรับแต่ละเวิร์กชีตที่เหลือ
ค้นหาวันที่ล่าสุดหรือน้อยที่สุด
ขั้นตอนในส่วนนี้ใช้ข้อมูลตัวอย่างเพื่อแสดงกระบวนการสร้างคิวรีค่าสูงสุด
สร้างคิวรีค่าสูงสุดพื้นฐาน
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี
-
ดับเบิลคลิกที่ตาราง พนักงาน แล้วคลิก ปิด
ถ้าคุณใช้ข้อมูลตัวอย่าง ให้เพิ่มตาราง Employees ลงในคิวรี
-
เพิ่มเขตข้อมูลที่คุณต้องการใช้ในคิวรีของคุณลงในตารางออกแบบ คุณสามารถดับเบิลคลิกที่แต่ละเขตข้อมูล หรือลากแล้วปล่อยแต่ละเขตข้อมูลบนเซลล์ว่างในแถว เขตข้อมูล
ถ้าคุณใช้ตารางตัวอย่าง ให้เพิ่มเขตข้อมูล ชื่อ นามสกุล และ วันเกิด
-
ในเขตข้อมูลที่มีค่าสูงสุดหรือค่าต่ําสุดของคุณ (เขตข้อมูล วันเกิด ถ้าคุณใช้ตารางตัวอย่าง) ให้คลิกแถว เรียงลําดับ แล้วเลือก จากน้อยไปหามาก หรือ จากมากไปหาน้อย
ลําดับการจัดเรียงจากมากไปหาน้อยจะส่งกลับวันที่ล่าสุด และลําดับการจัดเรียงจากน้อยไปหามากจะส่งกลับวันที่แรกสุด
สิ่งสำคัญ: คุณต้องตั้งค่าในแถว เรียงลําดับ เท่านั้น สําหรับเขตข้อมูลที่มีวันที่ของคุณ ถ้าคุณระบุลําดับการจัดเรียงสําหรับเขตข้อมูลอื่น คิวรีจะไม่ส่งกลับผลลัพธ์ที่คุณต้องการ
-
บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิกลูกศรลงที่อยู่ถัดจาก ทั้งหมด (รายการ ค่าสูงสุด ) แล้วใส่จํานวนระเบียนที่คุณต้องการดู หรือเลือกตัวเลือกจากรายการ
-
คลิก เรียกใช้
เพื่อเรียกใช้คิวรีและแสดงผลลัพธ์ในมุมมองแผ่นข้อมูล -
บันทึกคิวรีเป็น NextBirthDays
คุณจะเห็นว่าคิวรีที่มีค่าสูงสุดชนิดนี้สามารถตอบคําถามพื้นฐาน เช่น ใครคือบุคคลที่เก่าที่สุดหรืออายุน้อยที่สุดในบริษัท ขั้นตอนถัดไปจะอธิบายวิธีการใช้นิพจน์และเกณฑ์อื่นๆ เพื่อเพิ่มพลังและความยืดหยุ่นให้กับคิวรี เกณฑ์ที่แสดงในขั้นตอนถัดไปจะส่งกลับวันเกิดของพนักงานสามคนถัดไป
เพิ่มเกณฑ์ลงในคิวรี
ขั้นตอนเหล่านี้ใช้คิวรีที่สร้างไว้ในกระบวนงานก่อนหน้านี้ คุณสามารถทําตามคิวรีที่มีค่าสูงสุดอื่นได้ ตราบใดที่คิวรียังมีข้อมูลวันที่/เวลาจริง ไม่ใช่ค่าข้อความ
เคล็ดลับ: ถ้าคุณต้องการทําความเข้าใจวิธีการทํางานของคิวรีให้ดียิ่งขึ้น ให้สลับระหว่างมุมมองออกแบบและมุมมองแผ่นข้อมูลในแต่ละขั้นตอน ถ้าคุณต้องการดูโค้ดคิวรีจริง ให้สลับไปยังมุมมอง SQL เมื่อต้องการสลับระหว่างมุมมอง ให้คลิกขวาที่แท็บด้านบนสุดของคิวรี แล้วคลิกมุมมองที่คุณต้องการ
-
ในบานหน้าต่างนําทาง ให้คลิกขวาที่คิวรี NextBirthDays แล้วคลิก มุมมองออกแบบ
-
ในตารางออกแบบคิวรี ในคอลัมน์ทางด้านขวาของ BirthDate ให้ใส่ดังต่อไปนี้:MonthBorn: DatePart("m",[BirthDate])นิพจน์นี้จะแยกเดือนจาก BirthDate โดยใช้ฟังก์ชัน DatePart
-
ในคอลัมน์ถัดไปของตารางออกแบบคิวรี ให้ใส่ดังต่อไปนี้:DayOfMonthBorn: DatePart("d",[BirthDate])นิพจน์นี้จะแยกวันของเดือนจาก BirthDate โดยใช้ฟังก์ชัน DatePart
-
ล้างกล่องกาเครื่องหมายในแถว แสดง สําหรับแต่ละนิพจน์สองนิพจน์ที่คุณเพิ่งใส่
-
คลิกแถว เรียงลําดับ สําหรับแต่ละนิพจน์ แล้วเลือก จากน้อยไปหามาก
-
ในแถว เกณฑ์ ของคอลัมน์ วันเกิด ให้พิมพ์นิพจน์ต่อไปนี้:Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date()):
-
Month( [Birth Date]) > Month(Date()) ระบุว่าวันเกิดของพนักงานแต่ละคนจะอยู่ในเดือนในอนาคต
-
Month( [Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) ระบุว่าถ้าวันเกิดเกิดขึ้นในเดือนปัจจุบัน วันเกิดจะตรงกับหรือหลังวันปัจจุบัน
โดยสรุป นิพจน์นี้ไม่รวมระเบียนใดๆ ที่วันเกิดเกิดขึ้นระหว่างวันที่ 1 มกราคมและวันที่ปัจจุบัน
เคล็ดลับ: สําหรับตัวอย่างเพิ่มเติมของนิพจน์เกณฑ์คิวรี ให้ดูบทความ ตัวอย่างของเกณฑ์คิวรี
-
-
บนแท็บ ออกแบบ ในกลุ่ม ตั้งค่าคิวรี ให้พิมพ์ 3 ในกล่อง Return
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้
หมายเหตุ: ในคิวรีของคุณเองโดยใช้ข้อมูลของคุณเอง บางครั้งคุณอาจเห็นระเบียนมากกว่าที่คุณระบุ ถ้าข้อมูลของคุณมีหลายระเบียนที่ใช้ค่าที่อยู่ในค่าสูงสุดร่วมกัน คิวรีของคุณจะส่งกลับระเบียนดังกล่าวทั้งหมด แม้ว่าจะหมายถึงการส่งกลับระเบียนมากกว่าที่คุณต้องการ
การค้นหาวันที่ล่าสุดหรือน้อยที่สุดสําหรับกลุ่มของระเบียน
คุณใช้คิวรีแบบใช้หาผลรวมเพื่อค้นหาวันที่แรกสุดหรือล่าสุดสําหรับระเบียนที่อยู่ในกลุ่ม เช่น เหตุการณ์ที่จัดกลุ่มตามเมือง คิวรีผลรวมคือคิวรีแบบใช้เลือกข้อมูลที่ใช้ฟังก์ชันการรวม (เช่น Group By, Min, Max, Count, First และ Last) เพื่อคํานวณค่าสําหรับแต่ละเขตข้อมูลผลลัพธ์
รวมเขตข้อมูลที่คุณต้องการใช้สําหรับประเภท เพื่อจัดกลุ่มตาม และเขตข้อมูลที่มีค่าที่คุณต้องการสรุป ถ้าคุณรวมเขตข้อมูลผลลัพธ์อื่นๆ กล่าวคือ ชื่อของลูกค้าเมื่อคุณจัดกลุ่มตามชนิดเหตุการณ์ คิวรีจะใช้เขตข้อมูลเหล่านั้นเพื่อสร้างกลุ่มด้วย การเปลี่ยนผลลัพธ์เพื่อไม่ให้ตอบคําถามเดิมของคุณ เมื่อต้องการติดป้ายชื่อแถวโดยใช้เขตข้อมูลอื่น ให้คุณสร้างคิวรีเพิ่มเติมที่ใช้คิวรีผลรวมเป็นแหล่งข้อมูล และเพิ่มเขตข้อมูลเพิ่มเติมลงในคิวรีนั้น
เคล็ดลับ: การสร้างคิวรีในขั้นตอนเป็นกลยุทธ์ที่มีประสิทธิภาพมากสําหรับการตอบคําถามขั้นสูงเพิ่มเติม ถ้าคุณกําลังมีปัญหาในการใช้งานคิวรีที่ซับซ้อน ให้พิจารณาว่าคุณสามารถแบ่งคิวรีเป็นชุดคิวรีที่ง่ายขึ้นได้หรือไม่
สร้างคิวรีแบบใช้หาผลรวม
กระบวนงานนี้ใช้ ตารางตัวอย่างเหตุการณ์ และ ตารางตัวอย่าง EventType เพื่อตอบคําถามนี้:
เหตุการณ์ล่าสุดของแต่ละประเภทเหตุการณ์ไม่รวมคอนเสิร์ตคือเมื่อใด
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี
-
ดับเบิลคลิกที่ตาราง เหตุการณ์ และ EventType แต่ละตารางจะปรากฏในส่วนบนของตัวออกแบบคิวรี
-
ดับเบิลคลิกที่เขตข้อมูล EventType ของตาราง EventType และเขตข้อมูล EventDate จากตาราง เหตุการณ์ เพื่อเพิ่มเขตข้อมูลลงในตารางออกแบบคิวรี
-
ในตารางออกแบบคิวรี ในแถว เกณฑ์ ของเขตข้อมูล EventType ให้ใส่ <>คอนเสิร์ต
เคล็ดลับ: สําหรับตัวอย่างเพิ่มเติมของนิพจน์เกณฑ์ ให้ดูบทความ ตัวอย่างของเกณฑ์คิวรี
-
บนแท็บ ออกแบบ ในกลุ่ม แสดง/ซ่อน ให้คลิก ผลรวม
-
ในตารางออกแบบคิวรี ให้คลิกแถว ผลรวม ของเขตข้อมูล EventDate แล้วคลิก Max
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก มุมมอง แล้วคลิก มุมมอง SQL
-
ในหน้าต่าง SQL ที่ส่วนท้ายของส่วนคําสั่ง SELECT หลังจากคําสําคัญ AS ให้แทนที่ MaxOfEventDate ด้วย MostRecent
-
บันทึกคิวรีเป็น MostRecentEventByType
สร้างคิวรีที่สองเพื่อเพิ่มข้อมูลเพิ่มเติม
กระบวนงานนี้ใช้คิวรี MostRecentEventByType จากกระบวนงานก่อนหน้าเพื่อตอบคําถามนี้:
ใครคือลูกค้าที่เหตุการณ์ล่าสุดของแต่ละชนิดเหตุการณ์
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี
-
บนแท็บ คิวรี ให้ดับเบิลคลิกคิวรี MostRecentEventByType
-
บนแท็บ ตาราง ให้ดับเบิลคลิกที่ตาราง เหตุการณ์ และตาราง ลูกค้า
-
ในตัวออกแบบคิวรี ให้ดับเบิลคลิกที่เขตข้อมูลต่อไปนี้:
-
บนตาราง เหตุการณ์ ให้ดับเบิลคลิกที่ EventType
-
บนคิวรี MostRecentEventByType ให้ดับเบิลคลิก MostRecent
-
บนตาราง ลูกค้า ให้ดับเบิลคลิกที่ บริษัท
-
-
ในตารางออกแบบคิวรี ในแถว เรียงลําดับ ของคอลัมน์ EventType ให้เลือก จากน้อยไปหามาก
-
บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้