ส่วนคำสั่ง HAVING ใน Access จะระบุว่าระเบียนที่จัดกลุ่มแล้วระเบียนใดจะแสดงในคำสั่ง SELECT พร้อมส่วนคำสั่ง GROUP BY หลังจากที่ GROUP BY รวมระเบียนแล้ว ส่วนคําสั่ง HAVING จะแสดงระเบียนที่ถูกจัดกลุ่มตามส่วนคําสั่ง GROUP BY ที่ตรงตามเงื่อนไขของส่วนคําสั่ง HAVING
ไวยากรณ์
SELECT fieldlist
FROM table WHERE selectcriteria GROUP BY groupfieldlist [HAVING groupcriteria]คำสั่ง SELECT ที่มีส่วนคำสั่ง HAVING มีส่วนต่างๆ ดังนี้
ส่วน |
คำอธิบาย |
fieldlist |
ชื่อของเขตข้อมูลหนึ่งหรือหลายเขตข้อมูลที่จะถูกดึงออกมาพร้อมกันกับนามแฝงของชื่อเขตข้อมูลใดๆ , ฟังก์ชันการรวมของ SQL, เพรดิเคตการเลือก (ALL, DISTINCT, DISTINCTROW หรือ TOP) หรือตัวเลือกอื่นๆ ของคำสั่ง SELECT |
table |
ชื่อของตารางที่ระเบียนถูกดึงออกมา |
selectcriteria |
เกณฑ์การเลือก ถ้าคําสั่งมีส่วนคําสั่ง WHERE กลไกจัดการฐานข้อมูล Microsoft Access จะจัดกลุ่มค่าต่างๆ หลังจากนําเงื่อนไข WHERE ไปใช้กับระเบียนแล้ว |
groupfieldlist |
ชื่อของเขตข้อมูลสูงสุด 10 เขตข้อมูลที่ใช้ในการจัดกลุ่มระเบียน ลําดับของชื่อเขตข้อมูลใน groupfieldlist จะกําหนดระดับการจัดกลุ่มจากระดับสูงสุดไปยังระดับต่ําสุดของการจัดกลุ่ม |
groupcriteria |
นิพจน์ที่กำหนดว่าระเบียนที่ถูกจัดกลุ่มระเบียนใดบ้างที่จะแสดง |
ข้อสังเกต
ส่วนคำสั่ง HAVING จะมีหรือไม่มีก็ได้
ส่วนคําสั่ง HAVING จะคล้ายกับ WHERE ซึ่งจะกําหนดว่าระเบียนใดจะถูกเลือก หลังจากระเบียนถูกจัดกลุ่มด้วย GROUP BY แล้ว ส่วนคําสั่ง HAVING จะกําหนดว่าระเบียนใดบ้างที่จะแสดง
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
ส่วนคำสั่ง HAVING สามารถมีนิพจน์ได้ถึง 40 นิพจน์ซึ่งเชื่อมโยงกันด้วยตัวดำเนินการเชิงตรรกะ เช่น And และ Or