BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: naydekdee ที่ กรกฎาคม 07, 2011, 12:26:41 PM
-
การใช้ union 3 union กับการใช้ if then else 3 ตัวเลือก อย่างไหน จะไว อะคับ
ฝากผู้รู้ตอบหน่อย ไปกินข้าวเด๋วมาเอาคำตอบ ไม่อยากลองเอง กัว เครื่องเน่า อิอิ
พูดเล่น นะคับ
ขอบคุณคับ
-
ในไหน ใน sql query หรือ ใน code
-
ใน Sql query report
ChangeDBPipeLineLink6SQL('select p1.vn as vn,p1.physic_items_id as item_list,p1.doctor as doctor_code, '+
'p2.name as item_name,d.name as doctor_name, '+
'concat("[¡ÒÂÀÒ¾] ",if(p2.name is null," - ",p2.name)," # ",if(d.name is null," - ",d.name)) as PH_name '+
'from physic_list p1,physic_items p2,doctor d '+
'where p2.physic_items_id = p1.physic_items_id and d.code = p1.doctor and p1.vn = "'+DBPipeline['vn']+'" '+
'union '+
'select h1.vn as vn,h1.item_id as item_list,h1.doctor as doctor_code, '+
'h2.name as item_name,d.name as doctor_name, '+
'concat("[á¼¹ä·Â] ",if(h2.name is null," - ",h2.name)," # ",if(d.name is null," - ",d.name)) as PH_name '+
'from health_med_list h1,health_med_items h2,doctor d '+
'where h2.item_id = h1.item_id and d.code = h1.doctor and vn = "'+DBPipeline['vn']+'" ' +
'union '+
'select op.vn as vn,hm.item_id as item_list,op.doctor as doctor_code,hm.name as item_name,d.name as doctor_name, '+
'concat("[á¼¹ä·Â] ",if(hm.name is null," - ",hm.name)," # ",if(d.name is null," - ",d.name)) as PH_name '+
'from opitemrece op,health_med_items hm,doctor d '+
'where hm.icode=op.icode and op.doctor=d.code and op.vn = "'+DBPipeline['vn']+'" ');
-
พอดี ใน opdcard ไมได้ใช้ระบบ แพทย์แผนไทย ในงานแพทย์แผนไทย แต่ว่าเราใช้ผ่านห้องตรวจ เวลาที่ พิมพ์ ออกมาจะไม่พบรายการที่ใช้ในหมวด แพทย์แผนไทย ก็เลย แก้ code ในรายงานให้ดึงมาจากตาราง opitemrece ออกมา แต่ก็กัวว่าจะอยากจะไปใช้ทั้งแบบห้องตรวจแพทย์แผนไทย และ ห้องตรวจแพทย์ ปัจจุบัน ก็เลยต้องค้างไว้ แล้วเขียนเพิ่ม ซึ่งก็อาจทำให้ รายงานประมวลผลช้า หรือว่าถ่วงการทำงาน ไป
แต่เท่าที่ทดลอง หน่วงไม่เท่าไหร่ ก็อยากทราบว่า อันไหนเร็วกว่ากัน แต่ก็จะทดสอบแล้วห่างกันไม่เท่าไหร่
ก็น่าจะใช้พอไหว อิอิ ไม่อยากคิดมาก หากมีอาจารย์ท่านไหน มีวิธีเจ๋งๆ แนะนำหน่อยจะได้ฝึกทำ ^ ^
ขอบคุณคับ
V V"
-
ผมว่าสองคำสั่งนี้มันให้ผลต่างกันนะครับ
คนละวัตถุประสงค์ครับ
-
ผมว่าสองคำสั่งนี้มันให้ผลต่างกันนะครับ
คนละวัตถุประสงค์ครับ
เอ๋ น่าจะพอทำได้นะคับ หากว่า ให้ตัวเลือกในคำสั่งว่า เช่น
หาก รายการใน health_med_list Active (มีข้อมูลของ VN ที่เลือกปรากฏ) ก็ให้ run if ตัวที่ 1 หากไม่มี ก็ run if ตัวที่สอง หากไม่มี ค่าใด ก็ ไม่ปรากฏ อะไรเลย
เข้าใจไหม นี่คับ เด๋วลองทดสอบก่อนว่าจะ ดีหรือว่าเน่า 555+ หุหุหุ
V V"
-
ผมว่าสองคำสั่งนี้มันให้ผลต่างกันนะครับ
คนละวัตถุประสงค์ครับ
เอ๋ น่าจะพอทำได้นะคับ หากว่า ให้ตัวเลือกในคำสั่งว่า เช่น
หาก รายการใน health_med_list Active (มีข้อมูลของ VN ที่เลือกปรากฏ) ก็ให้ run if ตัวที่ 1 หากไม่มี ก็ run if ตัวที่สอง หากไม่มี ค่าใด ก็ ไม่ปรากฏ อะไรเลย
เข้าใจไหม นี่คับ เด๋วลองทดสอบก่อนว่าจะ ดีหรือว่าเน่า 555+ หุหุหุ
V V"
ลองแปลงไปใช้ union ดูคับพี่ดุล แล้วจะรู้ว่าสองคำสั่งนี้มันใช้คนละจุดประสงค์กันจริง ๆ ตามพี่โก้บอก ฮ่า ๆ
-
if .. then .. else เราเอาไว้ใช้ตรวจตามเงื่อนไขที่เรากำหนด ถ้าเป็นจริงทำอะไร ถ้าเป็นเท็จทำอะไร
ส่วน
union เราเอาไว้นำข้อมูลมาต่อกัน ถ้ามองง่าย ๆ ก็เหมือนกับการเอาตาราง (ข้อมูลที่ได้จาก 1 query) มาต่อกัน
-
ขอบคุณทุกคำตอบ นะคับ แต่ว่าเล่นไปเรื่อยเปือย อ่ะ ผม ง่า 55 ลองเล่น อ่ะ
ชอบเล่น แต่ไม่ค่อยมีความรู้หรอก อาศัย เล่นไป เน่าก็เอาใหม่ เบื่อก็เลิกทำ มีกำลังใจก็ลองเล่นใหม่
หุหุหุ
V V"