หน้า 1 จากทั้งหมด 1

IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โพสต์แล้ว: พุธ ก.ย. 05, 2018 8:54 am
โดย accom
ขอความช่วยเหลือ ตรวจคำสั่ง IIF เงื่อนไข DF > 120 .and. DF < 135 รายงานไม่ตรง (สีแดง) หรือว่า คำสั่งยาวเกินไปค่ะ
มีวิธีเขียนสั้นกว่านี้ไหมค่ะ


comm=IIF(ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX'.AND.DF<121,COM1*2/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF<121,COM1*1.5/100,IIF(ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY'.AND.DF<120,COM1*4/100,IIF(ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX'.AND.DF >120.AND.DF<135,COM1*1/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF>120.AND.DF<135,COM1*0.75/100,IIF(ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY'.AND.DF>120.AND.DF<135,COM1*2/100,0))))))

[url][url=https://uppic.cc/v/HHb]รูปภาพ[/url] [/url]

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โพสต์แล้ว: ศุกร์ ก.ย. 07, 2018 9:55 am
โดย savek
อาจจะเกี่ยวกับเรื่องความยาวครับ ลองใช้วิธีนี้นะครับ

DPC=ARTRNX->DEPCOD; comm=IIF(DPC='SANT'.OR.DPC='SNSE' ....

คือย่อฟิลด์ข้อมูล ARTRNX->DEPCOD ให้เหลือแค่คำว่า DPC ครับ

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โพสต์แล้ว: เสาร์ ก.ย. 08, 2018 10:55 pm
โดย กฤตเมธ
ข้อความที่ใช้ .or. ต้องมีวงเล็บปิดหัวและท้าย
ฉะนั้นคำสั่้งที่ถูกต้องจะเป็นดังนี้

comm=IIF((ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX').AND.DF<121,COM1*2/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF<121,COM1*1.5/100,IIF((ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY').AND.DF<120,COM1*4/100,IIF((ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX').AND.DF >120.AND.DF<135,COM1*1/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF>120.AND.DF<135,COM1*0.75/100,IIF((ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY').AND.DF>120.AND.DF<135,COM1*2/100,0))))))

ตามเงื่อนไข ถ้า df = 120 จะได้ค่า 0
เพราะเงื่อนไขมี แต่ < 120 และ > 120 แต่น้อยกว่า 135
จริงๆ ถ้าเงื่อนไขแรก < 120 อีกตัวต้องเป็น >= 120 แต่น้อยกว่า 135
หรือ ถ้าเงื่อนไขแรก <= 120 อีกตัวต้องเป็น > 120 แต่น้อยกว่า 135

เพราะ < 120 คือ 199.9999999 ลงมา
> 120 คือ 120.000000001 ขึ้นไป

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โพสต์แล้ว: อาทิตย์ ก.ย. 16, 2018 6:12 pm
โดย accom
แก้ไข ตามที่แจ้งมาน่ะค่ะ

ข้อความที่ใช้ .or. ต้องมีวงเล็บปิดหัวและท้าย

ขอบคุณมากค่ะ