นำไปใช้กับ
Access 2010

บทความนี้อธิบายวิธีการใช้คิวรีค่าสูงสุดและคิวรีผลรวมเพื่อค้นหาวันที่ล่าสุดหรือวันที่แรกสุดในชุดระเบียน วิธีนี้จะช่วยให้คุณตอบคําถามทางธุรกิจได้หลากหลาย เช่น เมื่อลูกค้าทําการสั่งซื้อครั้งล่าสุด หรือห้าไตรมาสใดที่คุณขายได้ดีที่สุดตามเมือง

ในบทความนี้

ภาพรวม

คุณสามารถจัดอันดับข้อมูลและรีวิวรายการที่จัดอันดับสูงสุดได้โดยใช้คิวรีที่มีค่าสูงสุด คิวรีที่มีค่าสูงสุดคือคิวรีแบบใช้เลือกข้อมูลที่ส่งกลับจํานวนที่ระบุหรือเปอร์เซ็นต์ของค่าจากด้านบนสุดของผลลัพธ์ ตัวอย่างเช่น หน้ายอดนิยมห้าหน้าบนเว็บไซต์ คุณสามารถใช้คิวรีค่าสูงสุดกับค่าชนิดใดก็ได้ โดยไม่จําเป็นต้องเป็นตัวเลข

ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูลของคุณก่อนที่คุณจะจัดอันดับ คุณไม่จําเป็นต้องใช้คิวรีค่าสูงสุด ตัวอย่างเช่น สมมติว่าคุณต้องการค้นหาหมายเลขการขายสําหรับวันที่ที่กําหนดสําหรับแต่ละเมืองที่บริษัทของคุณดําเนินงานอยู่ ในกรณีดังกล่าว เมืองจะกลายเป็นประเภท (คุณต้องค้นหาข้อมูลต่อเมือง) คุณจึงใช้คิวรีผลรวมได้

เมื่อคุณใช้คิวรีที่มีค่าสูงสุดเพื่อค้นหาระเบียนที่มีวันที่ล่าสุดหรือวันที่แรกสุดในตารางหรือกลุ่มระเบียน คุณสามารถตอบคําถามทางธุรกิจต่างๆ ได้ ดังต่อไปนี้

  • ช่วงหลังนี้มีใครทํายอดขายได้มากที่สุดบ้าง

  • ลูกค้าทําการสั่งซื้อครั้งล่าสุดเมื่อใด

  • สามวันเกิดในทีมจะมาถึงเมื่อไหร่

เมื่อต้องการสร้างคิวรีที่มีค่าสูงสุด ให้เริ่มต้นด้วยการสร้างคิวรีแบบใช้เลือกข้อมูล จากนั้นเรียงลําดับข้อมูลตามคําถามของคุณไม่ว่าคุณจะกําลังมองหาด้านบนหรือด้านล่าง ถ้าคุณต้องการจัดกลุ่มหรือสรุปข้อมูล ให้เปลี่ยนคิวรีแบบใช้เลือกข้อมูลเป็นคิวรีแบบใช้เลือกข้อมูล คุณสามารถใช้ฟังก์ชันการรวม เช่น 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

  1. เริ่มต้น Excel เวิร์กบุ๊กเปล่าจะเปิดขึ้น

  2. กด SHIFT+F11 เพื่อแทรกเวิร์กชีต (คุณจะต้องมีสี่รายการ)

  3. คัดลอกข้อมูลจากแต่ละตารางตัวอย่างลงในเวิร์กชีตเปล่า รวมส่วนหัวของคอลัมน์ (แถวแรก)

สร้างตารางฐานข้อมูลจากเวิร์กชีต

  1. เลือกข้อมูลจากเวิร์กชีตแรก รวมถึงส่วนหัวของคอลัมน์

  2. คลิกขวาที่บานหน้าต่างนําทาง แล้วคลิก วาง

  3. คลิก ใช่ เพื่อยืนยันว่าแถวแรกมีส่วนหัวของคอลัมน์

  4. ทําซ้ําขั้นตอนที่ 1-3 สําหรับแต่ละเวิร์กชีตที่เหลือ

ค้นหาวันที่ล่าสุดหรือน้อยที่สุด

ขั้นตอนในส่วนนี้ใช้ข้อมูลตัวอย่างเพื่อแสดงกระบวนการสร้างคิวรีค่าสูงสุด

สร้างคิวรีค่าสูงสุดพื้นฐาน

  1. บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี

  2. ดับเบิลคลิกที่ตาราง พนักงาน แล้วคลิก ปิด

    ถ้าคุณใช้ข้อมูลตัวอย่าง ให้เพิ่มตาราง Employees ลงในคิวรี

  3. เพิ่มเขตข้อมูลที่คุณต้องการใช้ในคิวรีของคุณลงในตารางออกแบบ คุณสามารถดับเบิลคลิกที่แต่ละเขตข้อมูล หรือลากแล้วปล่อยแต่ละเขตข้อมูลบนเซลล์ว่างในแถว เขตข้อมูล

    ถ้าคุณใช้ตารางตัวอย่าง ให้เพิ่มเขตข้อมูล ชื่อ นามสกุล และ วันเกิด

  4. ในเขตข้อมูลที่มีค่าสูงสุดหรือค่าต่ําสุดของคุณ (เขตข้อมูล วันเกิด ถ้าคุณใช้ตารางตัวอย่าง) ให้คลิกแถว เรียงลําดับ แล้วเลือก จากน้อยไปหามาก หรือ จากมากไปหาน้อย

    ลําดับการจัดเรียงจากมากไปหาน้อยจะส่งกลับวันที่ล่าสุด และลําดับการจัดเรียงจากน้อยไปหามากจะส่งกลับวันที่แรกสุด

    สิ่งสำคัญ: คุณต้องตั้งค่าในแถว เรียงลําดับ เท่านั้น สําหรับเขตข้อมูลที่มีวันที่ของคุณ ถ้าคุณระบุลําดับการจัดเรียงสําหรับเขตข้อมูลอื่น คิวรีจะไม่ส่งกลับผลลัพธ์ที่คุณต้องการ

  5. บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิกลูกศรลงที่อยู่ถัดจาก ทั้งหมด (รายการ ค่าสูงสุด ) แล้วใส่จํานวนระเบียนที่คุณต้องการดู หรือเลือกตัวเลือกจากรายการ

  6. คลิก เรียกใช้ รูปปุ่มเพื่อเรียกใช้คิวรีและแสดงผลลัพธ์ในมุมมองแผ่นข้อมูล

  7. บันทึกคิวรีเป็น NextBirthDays

คุณจะเห็นว่าคิวรีที่มีค่าสูงสุดชนิดนี้สามารถตอบคําถามพื้นฐาน เช่น ใครคือบุคคลที่เก่าที่สุดหรืออายุน้อยที่สุดในบริษัท ขั้นตอนถัดไปจะอธิบายวิธีการใช้นิพจน์และเกณฑ์อื่นๆ เพื่อเพิ่มพลังและความยืดหยุ่นให้กับคิวรี เกณฑ์ที่แสดงในขั้นตอนถัดไปจะส่งกลับวันเกิดของพนักงานสามคนถัดไป

เพิ่มเกณฑ์ลงในคิวรี

ขั้นตอนเหล่านี้ใช้คิวรีที่สร้างไว้ในกระบวนงานก่อนหน้านี้ คุณสามารถทําตามคิวรีที่มีค่าสูงสุดอื่นได้ ตราบใดที่คิวรียังมีข้อมูลวันที่/เวลาจริง ไม่ใช่ค่าข้อความ

เคล็ดลับ:  ถ้าคุณต้องการทําความเข้าใจวิธีการทํางานของคิวรีให้ดียิ่งขึ้น ให้สลับระหว่างมุมมองออกแบบและมุมมองแผ่นข้อมูลในแต่ละขั้นตอน ถ้าคุณต้องการดูโค้ดคิวรีจริง ให้สลับไปยังมุมมอง SQL เมื่อต้องการสลับระหว่างมุมมอง ให้คลิกขวาที่แท็บด้านบนสุดของคิวรี แล้วคลิกมุมมองที่คุณต้องการ

  1. ในบานหน้าต่างนําทาง ให้คลิกขวาที่คิวรี NextBirthDays แล้วคลิก มุมมองออกแบบ

  2. ในตารางออกแบบคิวรี ในคอลัมน์ทางด้านขวาของ BirthDate ให้ใส่ดังต่อไปนี้:MonthBorn: DatePart("m",[BirthDate])นิพจน์นี้จะแยกเดือนจาก BirthDate โดยใช้ฟังก์ชัน DatePart

  3. ในคอลัมน์ถัดไปของตารางออกแบบคิวรี ให้ใส่ดังต่อไปนี้:DayOfMonthBorn: DatePart("d",[BirthDate])นิพจน์นี้จะแยกวันของเดือนจาก BirthDate โดยใช้ฟังก์ชัน DatePart

  4. ล้างกล่องกาเครื่องหมายในแถว แสดง สําหรับแต่ละนิพจน์สองนิพจน์ที่คุณเพิ่งใส่

  5. คลิกแถว เรียงลําดับ สําหรับแต่ละนิพจน์ แล้วเลือก จากน้อยไปหามาก

  6. ในแถว เกณฑ์ ของคอลัมน์ วันเกิด ให้พิมพ์นิพจน์ต่อไปนี้: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 มกราคมและวันที่ปัจจุบัน

      เคล็ดลับ:  สําหรับตัวอย่างเพิ่มเติมของนิพจน์เกณฑ์คิวรี ให้ดูบทความ ตัวอย่างของเกณฑ์คิวรี

  7. บนแท็บ ออกแบบ ในกลุ่ม ตั้งค่าคิวรี ให้พิมพ์ 3 ในกล่อง Return

  8. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้ รูปปุ่ม

หมายเหตุ:  ในคิวรีของคุณเองโดยใช้ข้อมูลของคุณเอง บางครั้งคุณอาจเห็นระเบียนมากกว่าที่คุณระบุ ถ้าข้อมูลของคุณมีหลายระเบียนที่ใช้ค่าที่อยู่ในค่าสูงสุดร่วมกัน คิวรีของคุณจะส่งกลับระเบียนดังกล่าวทั้งหมด แม้ว่าจะหมายถึงการส่งกลับระเบียนมากกว่าที่คุณต้องการ

ด้านบนของหน้า

การค้นหาวันที่ล่าสุดหรือน้อยที่สุดสําหรับกลุ่มของระเบียน

คุณใช้คิวรีแบบใช้หาผลรวมเพื่อค้นหาวันที่แรกสุดหรือล่าสุดสําหรับระเบียนที่อยู่ในกลุ่ม เช่น เหตุการณ์ที่จัดกลุ่มตามเมือง คิวรีผลรวมคือคิวรีแบบใช้เลือกข้อมูลที่ใช้ฟังก์ชันการรวม (เช่น Group By, Min, Max, Count, First และ Last) เพื่อคํานวณค่าสําหรับแต่ละเขตข้อมูลผลลัพธ์

รวมเขตข้อมูลที่คุณต้องการใช้สําหรับประเภท เพื่อจัดกลุ่มตาม และเขตข้อมูลที่มีค่าที่คุณต้องการสรุป ถ้าคุณรวมเขตข้อมูลผลลัพธ์อื่นๆ กล่าวคือ ชื่อของลูกค้าเมื่อคุณจัดกลุ่มตามชนิดเหตุการณ์ คิวรีจะใช้เขตข้อมูลเหล่านั้นเพื่อสร้างกลุ่มด้วย การเปลี่ยนผลลัพธ์เพื่อไม่ให้ตอบคําถามเดิมของคุณ เมื่อต้องการติดป้ายชื่อแถวโดยใช้เขตข้อมูลอื่น ให้คุณสร้างคิวรีเพิ่มเติมที่ใช้คิวรีผลรวมเป็นแหล่งข้อมูล และเพิ่มเขตข้อมูลเพิ่มเติมลงในคิวรีนั้น

เคล็ดลับ:  การสร้างคิวรีในขั้นตอนเป็นกลยุทธ์ที่มีประสิทธิภาพมากสําหรับการตอบคําถามขั้นสูงเพิ่มเติม ถ้าคุณกําลังมีปัญหาในการใช้งานคิวรีที่ซับซ้อน ให้พิจารณาว่าคุณสามารถแบ่งคิวรีเป็นชุดคิวรีที่ง่ายขึ้นได้หรือไม่

สร้างคิวรีแบบใช้หาผลรวม

กระบวนงานนี้ใช้ ตารางตัวอย่างเหตุการณ์ และ ตารางตัวอย่าง EventType เพื่อตอบคําถามนี้:

เหตุการณ์ล่าสุดของแต่ละประเภทเหตุการณ์ไม่รวมคอนเสิร์ตคือเมื่อใด

  1. บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี

  2. ดับเบิลคลิกที่ตาราง เหตุการณ์ และ EventType แต่ละตารางจะปรากฏในส่วนบนของตัวออกแบบคิวรี

  3. ดับเบิลคลิกที่เขตข้อมูล EventType ของตาราง EventType และเขตข้อมูล EventDate จากตาราง เหตุการณ์ เพื่อเพิ่มเขตข้อมูลลงในตารางออกแบบคิวรี

  4. ในตารางออกแบบคิวรี ในแถว เกณฑ์ ของเขตข้อมูล EventType ให้ใส่ <>คอนเสิร์ต

    เคล็ดลับ:  สําหรับตัวอย่างเพิ่มเติมของนิพจน์เกณฑ์ ให้ดูบทความ ตัวอย่างของเกณฑ์คิวรี

  5. บนแท็บ ออกแบบ ในกลุ่ม แสดง/ซ่อน ให้คลิก ผลรวม

  6. ในตารางออกแบบคิวรี ให้คลิกแถว ผลรวม ของเขตข้อมูล EventDate แล้วคลิก Max

  7. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก มุมมอง แล้วคลิก มุมมอง SQL

  8. ในหน้าต่าง SQL ที่ส่วนท้ายของส่วนคําสั่ง SELECT หลังจากคําสําคัญ AS ให้แทนที่ MaxOfEventDate ด้วย MostRecent

  9. บันทึกคิวรีเป็น MostRecentEventByType

สร้างคิวรีที่สองเพื่อเพิ่มข้อมูลเพิ่มเติม

กระบวนงานนี้ใช้คิวรี MostRecentEventByType จากกระบวนงานก่อนหน้าเพื่อตอบคําถามนี้:

ใครคือลูกค้าที่เหตุการณ์ล่าสุดของแต่ละชนิดเหตุการณ์

  1. บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี

  2. บนแท็บ คิวรี ให้ดับเบิลคลิกคิวรี MostRecentEventByType

  3. บนแท็บ ตาราง ให้ดับเบิลคลิกที่ตาราง เหตุการณ์ และตาราง ลูกค้า

  4. ในตัวออกแบบคิวรี ให้ดับเบิลคลิกที่เขตข้อมูลต่อไปนี้:

    1. บนตาราง เหตุการณ์ ให้ดับเบิลคลิกที่ EventType

    2. บนคิวรี MostRecentEventByType ให้ดับเบิลคลิก MostRecent

    3. บนตาราง ลูกค้า ให้ดับเบิลคลิกที่ บริษัท

  5. ในตารางออกแบบคิวรี ในแถว เรียงลําดับ ของคอลัมน์ EventType ให้เลือก จากน้อยไปหามาก

  6. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ด้านบนของหน้า

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ