BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: jam10 ที่ เมษายน 17, 2012, 10:23:39 AM

หัวข้อ: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: jam10 ที่ เมษายน 17, 2012, 10:23:39 AM
ผมต้องการเงื่อนไขแบบนี้ครับ
FBS   126-154   = Grade 1
        155-182   = Grade 2
        >= 183   = Grade 3

แล้วผมเขียนคำสั่งแบบนี้ แต่มันแปลผลออกมาเป็น ปกติ หมดครับ ต้องแก้ตรงไหนคับ รบกวนท่านอาจาร์ยทั้งหลายด้วยครับ เพื่อเป็นแนวทางในการเขียนครั้งต่อไปครับ  :D

Value:=GetSQLDoubleData('select fbs from opdscreen where hn="'+DBPipeline['name3']+'"');
if Value < 125 then
  Value := '- ปกติ'
else if (Value >= 126) and (Value <= 154) then
  Value := '- 1'
else if (Value >= 155) and (Value <= 182) then
  Value := '- 2'
else if Value >= 183 then
  Value := '- 3';
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: redfireball ที่ เมษายน 17, 2012, 10:44:42 AM
ลองแบบนี้ได้ไมครับ  ;)
  Value :=  GetSQLStringData('select case when fbs between 126 and 154 then "- 1" when fbs between 155 and 182 then "- 2" when fbs >= 183 then "- 3" when (fbs is null or fbs = 0) then "N/A" else "- ปรกติ"  end as cc from opdscreen where hn="'+DBPipeline['name3']+'"');
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: armds ที่ เมษายน 17, 2012, 10:49:54 AM
ผมต้องการเงื่อนไขแบบนี้ครับ
FBS   126-154   = Grade 1
        155-182   = Grade 2
        >= 183   = Grade 3

แล้วผมเขียนคำสั่งแบบนี้ แต่มันแปลผลออกมาเป็น ปกติ หมดครับ ต้องแก้ตรงไหนคับ รบกวนท่านอาจาร์ยทั้งหลายด้วยครับ เพื่อเป็นแนวทางในการเขียนครั้งต่อไปครับ  :D

Value:=GetSQLDoubleData('select fbs from opdscreen where hn="'+DBPipeline['name3']+'"');
if Value < 125 then
  Value := '- ปกติ'
else if (Value >= 126) and (Value <= 154) then
  Value := '- 1'
else if (Value >= 155) and (Value <= 182) then
  Value := '- 2'
else if Value >= 183 then
  Value := '- 3';

ลองใช้  case of  เอาครับ ทำเป็นช่วง ๆ ก็ได้
ตัวอย่างครับ

Case Value of
    1..125     : Value :='ปกติ';
    126..154 : Value :='1';
    155..182 : Value :='2';
  else Value :='3';
  end;
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: jam10 ที่ เมษายน 17, 2012, 11:11:30 AM
มันขึ้นเป็น ปกติ ทั้งหมดเลยครับ  ???
ผมต้องการเงื่อนไขแบบนี้ครับ
FBS   126-154   = Grade 1
        155-182   = Grade 2
        >= 183   = Grade 3

แล้วผมเขียนคำสั่งแบบนี้ แต่มันแปลผลออกมาเป็น ปกติ หมดครับ ต้องแก้ตรงไหนคับ รบกวนท่านอาจาร์ยทั้งหลายด้วยครับ เพื่อเป็นแนวทางในการเขียนครั้งต่อไปครับ  :D

Value:=GetSQLDoubleData('select fbs from opdscreen where hn="'+DBPipeline['name3']+'"');
if Value < 125 then
  Value := '- ปกติ'
else if (Value >= 126) and (Value <= 154) then
  Value := '- 1'
else if (Value >= 155) and (Value <= 182) then
  Value := '- 2'
else if Value >= 183 then
  Value := '- 3';

ลองใช้  case of  เอาครับ ทำเป็นช่วง ๆ ก็ได้
ตัวอย่างครับ

Case Value of
    1..125     : Value :='ปกติ';
    126..154 : Value :='1';
    155..182 : Value :='2';
  else Value :='3';
  end;
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: niyomstd ที่ เมษายน 17, 2012, 11:13:19 AM
where hn="'+DBPipeline['name3']+'"
เชื่อมจากตารางไหนครับ
จะให้ง่าย ส่ง ตัวรายงานมาให้ทดสอบครับ :) :) :)
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: jam10 ที่ เมษายน 17, 2012, 11:18:38 AM
clinicmember ครับ เอาเฉพาะผู้ป่วยที่เป็นความดัน ครับ
where hn="'+DBPipeline['name3']+'"
เชื่อมจากตารางไหนครับ
จะให้ง่าย ส่ง ตัวรายงานมาให้ทดสอบครับ :) :) :)
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: niyomstd ที่ เมษายน 17, 2012, 11:25:42 AM
Value:=GetSQLDoubleData('select fbs from opdscreen where hn="'+DBPipeline['hn']+'" and '+
' vstdate between "'+ds1+'" and "'+ds2+'"');
if Value < 125 then
  Value := ' »¡µÔ'
else if (Value >= 126) and (Value <= 154) then
  Value := 'G1'
else if (Value >= 155) and (Value <= 182) then
  Value := 'G2'
else if Value >= 183 then
  Value := 'G3';
หัวข้อ: Re: ชี้แนะด้วยครับ เรื่อง คำสั่ง
เริ่มหัวข้อโดย: jam10 ที่ เมษายน 17, 2012, 12:00:18 PM
ได้แล้วครับ ขอบคุณ ท่านอาจาร์ย niyomstd มากๆครับ  :D

Value:=GetSQLDoubleData('select fbs from opdscreen where hn="'+DBPipeline['hn']+'" and '+
' vstdate between "'+ds1+'" and "'+ds2+'"');
if Value < 125 then
  Value := ' &raquo;&iexcl;&micro;&Ocirc;'
else if (Value >= 126) and (Value <= 154) then
  Value := 'G1'
else if (Value >= 155) and (Value <= 182) then
  Value := 'G2'
else if Value >= 183 then
  Value := 'G3';