โปรแกรมบัญชีเกณพ์คงค้าง รพ.สต. สสจ.สุรินทร์ รายงานผู้บริหารด้านการเงิน รพ.สต.

Server รพ.ผมพัง ข้อมูลหายไปอาทิตย์หนึ่ง วุ่นวายหล่ะทีนี้ งานเข้าหล่ะ


DateTime : 2010-11-01 22:32:45
Post By : huwko
IP Address : 118.175.76.231

ใครเมตตามาช่วยกู้ข้อมูลให้ที  Dell 2900  Raid 5  Boot Cenos ไม่ขึ้น     แย่จัง


Message !!

หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..


กระทู้ตอบกลับ

MySql วันละคำ กับ perjer  Grin Grin

ของผมจะเป็นการสอนการใช้แต่ถ้านำไปใช้จิรงก็ประยุกเอานะครับ และไม่ต้องแปลกใจกับ as dd นะครับ ผมแค่เอาค่าที่ได้ไปเก็บในตัวแปล dd เท่านั้นครับ หากมีผิดพลาดประการใดก็แนะนำด้วยครับ

อ้างอิงจาก http://dev.mysql.com/doc/ ครับส่นใจเข้าไปโหลดอ่านได้ครับ

// Mysql 5.0 ขึ้นไปนะครับ เพราะส่วนใหญ่ใช้ version 5 กันนะครับ ส่วนที่ตำกว่านี้ก็สามารถถามมาได้ครับ แล้วผมจะตอบให้ครับ

คำสั่ง if เงื่อนไข ครับ

          select if ("a"="a",1,2) as dd ผลที่ได้ก็คือ 1 ครับ เพราะ a มันเท่ากับ a ก็จะเอา 1 มาแสดงครับ
          select if ("a"="b",1,2) as dd ผลที่ได้ก็คือ 2 ครับ เพราะ a มันไม่เท่ากับ b ก็จะเอา 2 มาแสดงครับ

คำสั่ง substring การตัดตัวอักษร  ครับ

          select substring("123456789",1,5) as dd ค่าที่ได้คือ 12345 เพราะการผมตัดโดยกำหนดตำแหน่งที่ 1 ถึง 5 ครับ
     
         substring_index("1234516789","1",2) as dd ค่าที่ได้ก็คือ 123451 เป็นการตัดโดยใช้การหาตำแหน่งตัวอักษรครับ จากคำสั่งนี้หมายถึง เอาตัวอักษรตังแต่เริ่มจนถึง 1 ตัวที่ จะเห็นว่ามีเลขหนึ่งสองตัวแต่
         substring_index("1234516789","1",-1) as dd ค่าที่ได้คือ 16789 ครับต่างกันที่จุดเริ่มต้นอยู่ด้วยขวาครับ

คำสั่ง  UPPER ทำตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่         
         SELECT UPPER("perjerไทย") as dd จะได้เป็น PERJERไทย ครับภาษาไทยไม่เปลี่ยนอะครับไม่ต้องกลัว

คำสั่ง REPLACE แทนที่ตัวอักษรด้วยค่าที่ต้องการครับ

         SELECT REPLACE("123456789", "56", "M") as dd ค่าที่ได้คือ 1234M789 ครับ เพราะผมแทนที่ 56 ด้วย M ครับ

คำสั่ง TIMESTAMPDIFF หาค่าความต่างของ เดือน กะ ปี ครับ
         
         SELECT TIMESTAMPDIFF(MONTH,"2003-02-01","2003-05-01") as dd ค่าที่ได้คือ 3 ครับเพราะเดือน ห่างกัน 3 ครับ
         
         SELECT TIMESTAMPDIFF(YEAR,"2001-01-01","2002-01-01") as dd ค่าที่ได้คือ 1 ครับ เพราะห่างกันหนึ่งปี

         SELECT TIMESTAMPDIFF(day,"2001-01-01","2002-01-01") as dd ค่าที่ได้คือ  365 เพราะต่างกัน 1 เท่ากับ 365 วันไงละครับ

         แตแค่นี้หลายคนก็คงยังมีคำถามในใจอีกว่าแล้วจะหาได้ วัน ที่ย้อนหลัง จากวันที่เรากำหนดได้เปล่า เช่น จะหาย้อนไป 28 วันของวันที่ 1/12/2550 ว่าเป็นวันที่เท่าไหรอะครับ นี้เลยครับคำสั่ง
         
         SELECT FROM_DAYS(TO_DAYS("2007-12-01")-28) as dd ค่าที่ได้คือ 3/11/2550 นี่คือคำตอบ อิอิ

หรือ วันใช้ SELECT SUBDATE('1998-01-02', INTERVAL 28 day) as dd ผลที่ได้ก็คือ 2007-11-03 มีค่าเท่ากัน อิอิฃ
       เดือนใช้ SELECT SUBDATE("2007-12-01", INTERVAL 1 MONTH) as dd ผลที่ได้คือ 2007-11-01
       ถ้าปีก็ SELECT SUBDATE("2007-12-01", INTERVAL 1 year) as dd ผลที่ได้คือ 2006-12-01 แค่นี้ครับ


Grin Grin การใช้งาน Report Designer ครับ  Grin Grin

หัวข้อแรกขอกล่าวถึง Variable ก่อนเลยครับ

เราสามารถเขียนคำสั่งและใช้ function ต่างๆได้เหมือนกันครับ เริ่มกันเลย นะครับ

1. เราสามารถปิดการแสดงของ  Lable , Dbtext   และตัวอื่นๆ รวมทั้งตัวมันเองด้วยครับ ตัวอย่างเช่น
     หากมี Dbtext ที่มีค่าของ รหัสบัตรประจำตัวประชาชน ที่นี้ผมต้องการ ที่จะปิดตัว DbText กับ Lable ถ้าเลขบัตรเท่ากับ 1-1111-11111-11-1
ผมก็เขียนใน Varialeble ตัวหนึ่งดังนี้ ครับ
   if (DBPipeline['mon'] = '1-1111-11111-11-1') then
   begin
      DbText1.visible := false;
      Lable1.visible := false;
   end else
   begin
      DbText1.visible := true;
      Lable1.visible := true;
   end;
หลักการก็ง่ายนิดเดียวครับ ชื่อของตัวที่เราต้องการปิด แล้วก็ .visible := จริง หรือ เท็จ

2. เราสามารถเอาค่าในตัวต่างๆ ออกมาบวกกันใน Variable เช่น ผมจะเขียน code ใน variable1 โดยเอาค่าจาก variable2 กับ variable3  มาบวกกัน แล้วแสดงใน variable1
   ผมก็เข้าไปเขียนใน variable1 ดังนี้ครับ
   value := variable2.value + variable3.value;
   เป็นอันเสร็จสิ้นครับ
อีกอย่างที่อยากบอกวิธีใช้มันนั่นคือ memo ครับ หลายคนอาจอยากรู้ว่าใช้ยังไง เราก็สามารถเขียนใน variable ตัวหนึ่งเพื่อให้ค่าไปออกใน memo
   เช่นผมเขียนใน variable1 ว่า
   memo1.text := '12345678'; นี่คือวิธีการเอาค่าใส่ลงใน memo ง่ายไหมครับ

// 14/12/2550
             
ในการใช้ concat หากมี ฟิลด์ ไหนเกิดเป็นค่า Null ก็จะไม่มีค่าอะไรเกิดขึ้นเลย เช่น

SELECT CONCAT('My', NULL, 'QL')  ผลที่ได้คือ null ไม่มีอะไรออกมาครับ ดังนั้นวิธิแก้ครับผมยกตัวอย่าง patient ในการรวมชื่อนะครับ
select concat(if(pname is null,'',pname),if(fname is null,'',fname),if(lname is null,'',lname)) as full_name from patient

แค่นี้อะครับก็ OK วันนี้แค่นี้ก่อนนะครับ



   


  ใน Report Designer จจะมี function ที่ชือว่า GetPickupList(); หลายคนอาจเคยใช้ แต่หลายคนก็ยังใช้ไม่ค่อยเป็นวันนี้ วิธีใช้มาฝากครับ

ผมประกาศ ตัวแปลตัวหนึ่งขึ้นชื่อว่า pttype เป็น string ครับ จากนั้นก็เริ่มกันเลยครับ

ผมเขียนในส่วนของ Events นะครับ

pttype := GetPickupList('select "ALL" as name union select name from pttype '); // อาจจะมีคำถามถามว่า แล้ว Union นี้คืออะไร มันก็คือการเอา คำว่า ALL ไปรวมอยู่กับการเลือกสิทธิไงครับ ต่อเลยนะครับ

จากนั้นก็ต่อด้วย

if (pttype='') or (pttype='ALL') then
    begin
       pttype := '';
    end else
    begin
       pttype :=  GetSQLStringData('select pttype from pttype where name="'+pttype+'" ');
       pttype := ' pttype="'+pttype+'"';
    end;

เป็นการเทียบค่าที่ เลือกจาก function ข้างบนครับว่าเข้าเลือก ALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) ถ้าเลือกALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) pttype เท่ากับค่าว่าง แต่ถ้าเลือกสิทธิอื่นก็จะมาทำข้างล้างครับ

ตัวอย่างบรรทัด pttype := ' pttype="'+pttype+'"'; จะได้ pttype มีค่าเท่ากับ ' pttype="เลขสิทธิที่เลือก" ครับ

จากนั้นก็ใช้นี่เลยครับ function ChangeReportSQL(); //

ChangeReportSQL('select * from vn_stat '+
    '  where  '+pttype+' '+
    '    group by vn order by vstdate ');

แค่นี้เราก็จะได้รายงานที่สามารถเลือกสิทธิของผู้ป่วยได้แล้วครับว่าจะดูผู้ป่วยทุกสิทธิ หรือ เฉพาะสิทธิที่เราเลือก อิอิ


ลองดูนะครับไม่ได้ก็ถามมาครับ จะได้เป็น เทพ Admin


Post โดย :  huwko Date: 2010-11-01 22:34:09 ip: 118.175.76.231

server ใช้งานได้หรือยังครับ ต้องหาสาเหตุก่อนครับว่าเกิดจากอะไร อาจมีใครไปทำอะไรมันหรือเปล่าครับ

ขอให้ใช้งานได้ไวๆๆนะครับ


Post โดย :  chinaga Date: 2010-11-02 08:18:00 ip: 113.53.239.84

ยังเลยพี่ สงสัยต้องพิจารณาตัวเอง  น้ำก็ท่วมอีก


Post โดย :  huwko Date: 2010-11-02 09:31:33 ip: 118.175.76.231

มาเยี่ยมครับ บทความของจารยืโก้ เทพมาก 

Server คงไม่เป็นไรมั๊ง ระดับนี้แล้ว ขอให้ boot  ขึ้นเร็วๆ ครับ

และขอให้น้ำลดเร็วๆ เด้อ ส่งกำลังใจไปให้ครับ


Post โดย :  boonyiam Date: 2010-11-02 09:50:03 ip: 118.175.76.78

ขอบคุณคับผม  ข้อมูลหายไปตั้งแต่ 22 ตุลา หน่ะพี่  ตอนนี้ใช้ Server สำรองอยู่   รอกำลังเสริมจากพี่เหวย  วันนี้ก่อนมาช่วยวิดน้ำออก ด้วย 


Post โดย :  huwko Date: 2010-11-02 10:41:20 ip: 118.175.76.231

เป็นกำลังใจให้


Post โดย :  kroong Date: 2010-11-02 13:40:19 ip: 125.26.115.169

อือ แก้ได้ยัง


Post โดย :  dogmike Date: 2010-11-02 15:20:10 ip: 203.113.118.77

แค่ 10 วันเอง  ไม่ซีเรียส สะบายๆๆๆๆๆๆๆๆๆ


Post โดย :  huwko Date: 2010-11-02 16:45:00 ip: 118.175.76.231

ใช้ได้ยังครับ ลูกพี่  อิอิอิ


Post โดย :  ranja Date: 2010-11-02 20:02:20 ip: 203.113.116.117

 สู้ๆค่ะจารย์โก้    เขาฉกรรจ์ รออยู่นะค่ะ อิอิ


Post โดย :  manaw Date: 2010-11-02 20:29:52 ip: 223.207.137.22

ได้แล้วคับทุกท่าน ต้องขอบคุณพี่  สวอยมากนะคับ  ลืม adapter อีก   พี่เขาฉกรรจ์  อย่าลืมนะคับที่สัญญากันไว้  ผมจะไปเป็นชายฉะกันให้ได้  อิอิ


Post โดย :  huwko Date: 2010-11-02 20:55:56 ip: 118.175.76.231

แต่ Error  หลายที่โดยเฉพาะผู้ป่วยใน   Error หมดเลย Duplicate entry Key...............

 


Post โดย :  huwko Date: 2010-11-03 10:53:15 ip: 118.175.76.231

สงสับน้ำท่วมSERVERป่าวเนี้ย

ขอให้แก้ไขได้เร็วๆนะครับเทพadmin


Post โดย :  tano Date: 2010-11-04 12:04:25 ip: 223.207.12.18

Resync VN ใหม่ครับพี่โก้


Post โดย :  smakui Date: 2010-11-04 21:35:29 ip: 115.87.145.87

links ศึกษา MySQL

http://www.java2s.com/Tutorial/MySQL/0020__Introduction/Catalog0020__Introduction.htm

เดี๋ยวว่างจะอัพคู่มือ MySQL ฉบับภาษาไทยให้ครับ


Post โดย :  smakui Date: 2010-11-05 14:12:47 ip: 115.87.145.87

links ศึกษา MySQL

http://www.java2s.com/Tutorial/MySQL/0020__Introduction/Catalog0020__Introduction.htm

เดี๋ยวว่างจะอัพคู่มือ MySQL ฉบับภาษาไทยให้ครับ


Post โดย :  smakui Date: 2010-11-05 14:13:13 ip: 115.87.145.87

เป็นไงลูกพี่ หรือจะไปเรียน My SL กับผมป่าว


Post โดย :  kamo0073 Date: 2010-11-05 14:20:47 ip: 118.175.76.119

น่าสนนะ Mysl อบรมที่ไหนครับ

ดีนะเรามีสถานที่แลกเปลี่ยนเรียนรู้สิ่งดีๆๆสำหรับชาวไอที....


Post โดย :  tano Date: 2010-11-05 14:52:58 ip: 223.206.195.130