Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
Access
SQL Aggregate Function
ดาวน์โหลดคู่มือ

Min Function, Max Function

SQL Aggregate Function, ค่าที่ส่งออกมาเป็นค่าต่ำสุดหรือค่าสูงสุดของกลุ่มข้อมูลที่เก็บในฟิลด์ที่ระบุในคิวรี่

ไวยากรณ์

Min(expr )

Max(expr )

ตำแหน่ง expr เป็น expression ของข้อความระบุฟิลด์ที่เก็บข้อมูลตัวเลข ซึ่งต้องการนำมาหาค่า หรือเป็น expression ที่ใช้นำข้อมูลของฟิลด์นั้นมาคำนวณ ฟิลด์ใน expression สามารถเป็นชื่อฟิลด์ของ Table, ค่าคงที่ หรือฟังก์ชัน (สามารถนำใช้ฟังก์ชันที่ built-in หรือกำหนดเอง แต่ห้ามใช้ฟังก์ชันอื่นของ SQL aggregate function)

ลักษณะการประยุกต์

ฟังก์ชัน Min และ Max ใช้หาค่าน้อยที่สุด หรือมากที่สุดของฟิลด์ ขึ้นกับวิธีการสรุป หรือการจัดกลุ่มที่กำหนด เช่น ใช้ฟังก์ชันนี้ส่งออกค่าขนส่งต่ำที่สุดและสูงสุด ถ้าไม่กำหนดวิธีการสรุป จะใช้ Table ทั้งหมด

สามารถใช้ฟังก์ชัน Min และ Max เป็น expression ในคิวรี่ และในคุณสมบัติ SQL ของอ๊อบเจค QueryDef หรือการสร้าง Recordset ที่มาจากคิวรี่ของ SQL

ดูเพิ่มเติม

อ๊อบเจค QueryDef (DAO Language Reference), คุณสมบัติ SQL (DAO Language Reference)

การประยุกต์ใน Access

ใน Microsoft Access สามารถใช้ฟังก์ชัน Min และ Max ในตารางออกแบบคิวรี่, ในคำสั่ง SQL ที่ SQL view ของ Query Window, หรือในคำสั่ง SQL ภายในชุดคำสั่ง Visual Basic รวมถึงการใช้ฟังก์ชัน Min และ Max ในการคำนวณตัว control บนฟอร์มหรือรายงาน

ฟังก์ชัน Min และ Max มีประโยชน์อย่างมากใน Totals query และ Crosstab query การสร้างฟังก์ชันทำแบบเดียวกับการสร้างฟังก์ชัน Min และ Max ในตารางออกแบบคิวรี่, ในคำสั่ง SQL ที่ SQL view ของ Query Window

ในตารางออกแบบคิวรี่ สามารถสร้าง Totals query โดยคลิกปุ่ม Totals บนแถบเครื่องมือ Query Design แถว Totals จะแทรกในตาราง จากนั้นให้ตั้งค่าเซลล์ Totals ของฟิลด์เป็น aggregate function เพื่อคำนวณข้อมูล เช่น สมมติว่ามี Table ชื่อ Orders มีฟิลด์ Freight และ ShipCity ที่ต้องการนำมาสร้างเป็นคิวรี่เพื่อแสดงค่าขนส่งที่ต่ำที่สุดตามใบสั่งซื้อที่ส่งไปแต่ละเมือง ให้สร้าง Totals query ใหม่และ drag ฟิลด์ ShipCity ลงในตารางออกแบบคิวรี่ แล้วตั้งค่าเซลล์ Totals ของฟิลด์ ShipCity เป็น Group By จากนั้น drag ฟิลด์ Freight ลงในตารางออกแบบคิวรี่ แล้วตั้งค่าเซลล์ Totals ของฟิลด์ Freight เป็น Min เมื่อเรียกคิวรี่จะเห็นค่าขนส่งที่ต่ำที่สุดตามใบสั่งซื้อที่ส่งไปแต่ละเมือง

การดูคำสั่ง SQL ของคิวรี่นี้ ให้เปลี่ยนเป็น SQL view ตามตัวอย่างข้างต้นจะเห็นคำสั่ง

SELECT ShipCity, Min(Freight) As MinOfFreight From Orders GROUP BY ShipCity;

สามารถใช้คำสั่ง SQL ภายในชุดคำสั่ง Visual Basic ตัวอย่างเช่น procedure ต่อไปนี้เป็นการสร้าง dynaset แบบ Recordset ตามคำสั่ง SQL

Sub MinFreight()

  Dim dbs As Database, rst as Recordset, strSQL As String

  Set dbs = CurrentDb

  strSQL = "SELECT ShipCity, Min(Freight) As MinOfFreight"_
    & "From Orders GROUP BY ShipCity;"
  Set rst = dbs.OprnRecordset(strSQL)

  rst.MoveLast
  Debug.Print rst.RecordCount
  Set dbs = Nothing

End Sub

การใช้ฟังก์ชัน Min และ Max ในการคำนวณตัว control ให้ตั้งค่าของคุณสมบัติ ControlSource ด้วย expression ของฟังก์ชัน Avg เช่น

= Min([Freight])

ถ้าต้องการจำกัดค่าในการคำนวณสำหรับฟังก์ชัน Min หรือ Max ให้ตั้งค่าในการคัดเลือกข้อมูลที่คุณสมบัติ Filter

ตัวอย่าง

ตัวอย่างการหาค่าขนส่งสินค้าที่ต่ำที่สุดและสูงที่สุดในการส่งสินค้าไป UK โดยสมมติให้ EnumFields procedure เป็น procedure ในการพิมพ์ผลลัพธ์

Sub MinMaxX()

  Dim dbs As Database, rst As Recordset

  ' ต้องปรับปรุงคำสั่งนี้ให้มีพาร์ทของ Northwind
  Set dbs = OpenDatabase("Northwind.mdb")

  ' ส่งค่าขนส่งที่ต่ำที่สุดและสูงที่สุดในการส่งสินค้าไป UK
  Set rst = dbs.OpenRecordset("SELECT " _
    & "Min(Freight) AS [Low Freight], " _
    & "Max(Freight)AS [High Freight] " _
    & "FROM Orders WHERE ShipCountry = 'UK';")

  ' ย้าย Recordset
  rst.MoveLast

  ' เรียก EnumFields พิมพ์เนื้อหาของ Recordset โดยส่งผ่าน Recordset
  ' และความกว้างฟิลด์ที่ต้องการ
  EnumFields rst, 12

  dbs.Close

End Sub

ตัวอย่างการประยุกต์ใน Access

การใช้ฟังก์ชัน Min และ Max ในการคำนวณค่าขนส่งต่ำสุดและสูงสุดที่ส่งไปยัง UK สามารถสร้าง expression ใน SQL view ของ Query Window

SELECT Min([Freight]) AS [LowFreight] FROM Orders WHERE [ShipCountry] = 'UK';

SELECT Max([Freight]) AS [HighFreight] FROM Orders WHERE [ShipCountry] = 'UK';

การใช้ฟังก์ชัน Min และ Max ในการคำนวณค่าตัว control ของฟอร์มเพื่อหาค่าตามตัวอย่างข้างต้น ซึ่งใช้แหล่งข้อมูลจาก Table ชื่อ Orders เช่นเดียวกัน การประยุกต์ฟังก์ชัน Min และ Max ให้สร้างเป็น expression ในคุณสมบัติ ControlSource ของตัว control ในฟอร์ม และการคัดเลือกค่าฟิลด์ ShipCountry = UK ให้กำหนด expression ในคุณสมบัติ Filter ของฟอร์ม

= Min([Freight])