ตามรุปนี้ครับ ไม่รู้ต้อง set ยังไงเพราะค่าปกติไม่ใช่ตัวเลข
ก็ติ๊กตรง "ประภทของผล LAB" ว่าเป็น "ตัวอักษร" สิครับ
ถ้าเราไม่ติ๊กอะไรเลย มันจะเข้าใจว่าผล LAB เป็นตัวเลขทั้งหมดครับ
เพราะ อ.mn กำหนดประเภทของ field result_type (ประภทของผล LAB) เป็น int(11) ซึ่งถ้าเราไม่ใส่อะไรเลย มันจะเก็บเป็นค่าว่าง (null) ครับ
ถ้าเราติ๊กตรง "ประภทของผล LAB" ว่าเป็น "ตัวเลข" result_type (ประภทของผล LAB) จะมีค่าเป็น 0 ครับ
ถ้าเราติ๊กตรง "ประภทของผล LAB" ว่าเป็น "ตัวอักษร" result_type (ประภทของผล LAB) จะมีค่าเป็น 1 ครับ
ดังนั้น ถ้าเรายังทำเรื่องประเภทผล LAB ไม่เรียบร้อย (คือไม่ไปกำหนดประภทผล LAB ให้ครบทุกตัว) ก็จะเกิด error ขึ้นครับ เพราะโปรแกรมจะเข้าใจว่า "ประภทของผล LAB" ว่าเป็น "ตัวเลข" ทั้งหมด
ซึ่งถ้าเราลงผลเป็น "Positive" ลงไป (ซึ่งเป็นตัวอักษร) ตัว report จะเอาไปเข้าใจว่า
1. "ประภทของผล LAB" ว่าเป็น "ตัวเลข"
2. ผลที่ใส่มาก็เป็นตัวเลข (ทั้งที่จริงไม่ใช่)
3. ก็เลยนำไปเปรียบเทียบกับค่า normal ซึ่งค่า normal เราก็ไม่ได้ใส่อะไรไว้ (โปรแกรมเก็บค่าเป็นตัวเลข...อีกแล้ว => การไม่ใส่อะไรในนี้ก็เลยมีค่าเป็น 0) กลายเป็นเอาผลคำว่า "Positive" ไปเปรียบเทียบกับตัวเลข 0 ซึ่งมันเปรียบเทียบกันไม่ได้อยู่แล้วครับ เพราะเป็นคนละประเภทกัน
หวังว่าคงเข้าใจที่อธิบายไปนะครับ
ก็อย่าลืมไปกำหนด result_type (ประภทของผล LAB) ซะให้เรียบร้อยก่อนนำไปใช้
อ้อ...ฝาก sql ไปทดลอง run เพื่อปรับค่า result type เลยครับ
update lab_items set result_type=1 where ((range_check_min is null) or (range_check_max is null) or (range_check_min_female is null) or (range_check_max_female is null))