การใช้ฟังก์ชัน NZ ใน Crosstab Query ของ Microsoft Access

บทความโดย: 9Expert Team

การใช้ฟังก์ชัน NZ ใน Crosstab Query ของ Microsoft Access

9Expert Team 1 นาที

การใช้ฟังก์ชัน NZ  ใน Crosstab Query ของ Microsoft Access

หากท่านใดเคยใช้ Crosstab Query ใน Microsoft Access จะพบว่ามีการแสดงค่าว่าง (Null) ในกรณีที่ไม่มีข้อมูลในคอลัมน์นั้น ๆ
ยกตัวอย่างเช่น ต้องการสรุปว่า  ขายสินค้าให้ลูกค้าบริษัทใดเป็นยอดเงินเท่าใด ดังรูป

จะเห็นได้ว่ามีหลายรายการสินค้าที่ลูกค้าไม่ได้ซื้อ ทำให้มีค่าว่าง (Null) เกิดขึ้นเช่น   บริษัท Alfreds Futterkiste ไม่ซื้อ สินค้า Chang  เป็นต้น 
ซึ่งหากเราต้องการให้เป็นค่า 0 แทนค่าว่าง (Null) นั้น เราสามารถเข้าไปแก้ไขโดยใส่ ฟังก์ชัน NZ  ซึ่งเป็นการแปลงค่า Null ให้เป็นค่าต่างๆ ที่เราต้องการ ทั้งนี้ สามารถเข้าไปใส่ฟังก์ชันดังกล่าวได้ 2 ที่

1. SQL View

2. Expression Builder

ผลลัพธ์ที่ได้เป็นดังรูป

จากฟังก์ชัน NZ ตามตัวอย่างนั้น อธิบายได้ดังนี้ค่ะ
NZ(Sum(QOrders.Amount),0)  แปลได้ว่า
ถ้า ผลรวมของฟิลด์ Amount ใน QOrders เป็นค่า Null ให้แสดงค่า 0

แต่ถ้าเราต้องการให้แสดงข้อความว่า N/A ก็สามารถทำได้
โดยเขียนฟังก์ชันเป็น  NZ(Sum(QOrders.Amount),"N/A")

ทั้งนี้ N/A ต้องอยู่ภายใต้เครื่องหมาย double quote (") นั้น
เนื่องจาก N/A เป็น Constant ประเภท Text ค่ะ

ผลลัพธ์ที่ได้

แต่จากผลลัพธ์ที่ได้หลังจากใช้ฟังก์ชัน NZ แล้ว
จะเห็นว่า รูปแบบที่แสดงนั้นเพี้ยนไปจาก Query แรกที่ยังไม่ได้เปลี่ยนจากค่า Null เป็น 0  หรือ  N/A
นั่นคือ ทศนิยมไม่แน่นอน รวมถึงไม่มีเครื่องหมาย $ ด้วย
 
วิธีการแก้ไข คือ ใช้ฟังก์ชัน Format ช่วยค่ะดังแสดงในรูป

ผลลัพธ์ที่ได้

ส่วนการใช้งานฟังก์ชัน Format นั้น เป็นการกำหนดให้แสดงรูปแบบตามที่ต้องการค่ะ

จากตัวอย่าง Format(Nz(Sum([QOrders].[Amount]),0),"$#,##0.00")
เป็นการกำหนดให้รูปแบบของค่าที่ได้จาก Nz(Sum([QOrders].[Amount]),0)  เป็นรูปแบบ $#,##0.00

โดยที่  $#,##0.00 นั้นจะต้องอยู่ภายใต้เครื่องหมาย double quote (") ค่ะ

บทความนี้ต้องการจะแสดงให้เห็นว่า เราสามารถแก้ไขการแสดงผลของ Crosstab Query ได้ค่ะ

นั่นหมายถึงถ้าเรารู้จักฟังก์ชันต่างๆ เพิ่มขึ้น จะสามารถดัดแปลงแก้ไขได้ที่ SQL View หรือ Expression Builder ดังที่กล่าวมาแล้วค่ะ