ผู้เขียน หัวข้อ: รบกวนคำสั่ง sql  (อ่าน 9951 ครั้ง)

0 สมาชิก และ 2 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ chaiyahos

  • Jr. Member
  • **
  • กระทู้: 54
  • Respect: 0
    • ดูรายละเอียด
รบกวนคำสั่ง sql
« เมื่อ: ธันวาคม 04, 2012, 16:29:52 PM »
0
ขอคำสั่ง sql ในการนับจำนวน visit ที่มานวด+อบสมุนไพร+ประคบสมุนไพร(มีครบทั้ง 3 รายการใน 1 visit) ครับ จะเอาไปใส่ใน variable
หรือคำสั่งที่ใกล้เคียงก็ได้ เช่น นับจำนวน visit ที่มีการสั่งใช้ยาทั้ง ยา A,B,C ใน 1 visit (จะลองเอาไปประยุกต์ดูครับ)
weerachai lertwongchai :ฺPrasaeng hospital
Hosxp 3.54.10.24
email:weerachai079@yahoo.com

ออฟไลน์ BBT Hospital

  • Jr. Member
  • **
  • กระทู้: 61
  • Respect: +2
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #1 เมื่อ: ธันวาคม 06, 2012, 21:05:15 PM »
0
ขอพิมพ์โดยไม่ได้ลองกับHOSxp นะครับ

select o.vn from opitemrece o
where o.vn in (select op.vn from opitemrece op where op.icode="รหัสยาที่ 1"
                       and op.vstdate between "2012-12-01" and "2012-12-03" )
  and o.icode="รหัสยาตัวที่ 2" and o.vstdate between "2012-12-01" and "2012-12-03"
limit 10

ผมใช้ ตารางเดียวกันโดยกำหนดชื่อย่อตารางไว้คนละแบบนะครับ จะได้เข้าใจง่าย
ซึ่งความจริงอาจจะไม่ต้องใส่เลยก็ได้ครับ
แพทย์ โรงพยาบาลบางบัวทอง
Linux server Cent-OS 5 -ram 4 GB
HosXP when 2550
ตัวเองเริ่มใช้ July 2551
Server version: 3.55.11.8
Client version:HOSxP 3.55.2.29  (Most)
                      3.55.7.14(Ward)
การขึ้นระบบโดย : ทีม BMS
การทำ Report + SQL => นั่งเทียนมั่วเอง + copy ของ อาจารย์ ทั้งหลายครับ
** ขอบคุณ ทุกท่านที่เอื้อเฟื้อครับ **
(update signature when 56-01-24)

ออฟไลน์ chaiyahos

  • Jr. Member
  • **
  • กระทู้: 54
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #2 เมื่อ: ธันวาคม 08, 2012, 10:25:25 AM »
0
ขอบคุณครับ จะลองปรับใช้ดูนะครับ  ;D
weerachai lertwongchai :ฺPrasaeng hospital
Hosxp 3.54.10.24
email:weerachai079@yahoo.com

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: รบกวนคำสั่ง sql
« ตอบกลับ #3 เมื่อ: ธันวาคม 08, 2012, 10:31:30 AM »
0
select o.vn from opitemrece o
where op.icode in ("รหัสยา A" ,"รหัสยา B" ,"รหัสยา C" )
and  o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ BBT Hospital

  • Jr. Member
  • **
  • กระทู้: 61
  • Respect: +2
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #4 เมื่อ: ธันวาคม 10, 2012, 19:12:00 PM »
0
select o.vn from opitemrece o
where op.icode in ("รหัสยา A" ,"รหัสยา B" ,"รหัสยา C" )
and  o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
คำสั่งนี้หากมีการสั่งยาแค่ตัวเดียวก็จะขึ้นแล้วไม่ใช่หรือครับ แต่ที่เขาต้องการคือต้องมียาทั้ง 2 ตัวอยู่ด้วย
แต่พอมองเห็นคำสั่งนี้ก็นึกขึ้นได้อีกแบบครับ
select o.vn  from opitemrece o
where o.icode in ("รหัสยา 1","รหัสยา2","รหัสยา3")
and o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
having count(o.vn>2)

ใช้ในกรณีที่สั่งยาทั้ง 3 ตัว ครับ
แพทย์ โรงพยาบาลบางบัวทอง
Linux server Cent-OS 5 -ram 4 GB
HosXP when 2550
ตัวเองเริ่มใช้ July 2551
Server version: 3.55.11.8
Client version:HOSxP 3.55.2.29  (Most)
                      3.55.7.14(Ward)
การขึ้นระบบโดย : ทีม BMS
การทำ Report + SQL => นั่งเทียนมั่วเอง + copy ของ อาจารย์ ทั้งหลายครับ
** ขอบคุณ ทุกท่านที่เอื้อเฟื้อครับ **
(update signature when 56-01-24)

ออฟไลน์ BBT Hospital

  • Jr. Member
  • **
  • กระทู้: 61
  • Respect: +2
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #5 เมื่อ: ธันวาคม 11, 2012, 08:22:18 AM »
0
select o.vn  from opitemrece o
where o.icode in ("รหัสยา 1","รหัสยา2","รหัสยา3")
and o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
having count(o.vn>2)

ระวัง คำสั่งนี้ตรงที่ หากมีการสั่งยาเดิมซ้ำ 2 - 3 ครัง ก็อาจทำให้ได้ vn ที่สั่งยาจริง ๆ แค่ 1 - 2 ตัวได้ครับ
แพทย์ โรงพยาบาลบางบัวทอง
Linux server Cent-OS 5 -ram 4 GB
HosXP when 2550
ตัวเองเริ่มใช้ July 2551
Server version: 3.55.11.8
Client version:HOSxP 3.55.2.29  (Most)
                      3.55.7.14(Ward)
การขึ้นระบบโดย : ทีม BMS
การทำ Report + SQL => นั่งเทียนมั่วเอง + copy ของ อาจารย์ ทั้งหลายครับ
** ขอบคุณ ทุกท่านที่เอื้อเฟื้อครับ **
(update signature when 56-01-24)

ออฟไลน์ ถาวร

  • Newbie
  • *
  • กระทู้: 6
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #6 เมื่อ: ธันวาคม 11, 2012, 08:34:26 AM »
0
select o.vn from opitemrece o
where op.icode in ("รหัสยา A" ,"รหัสยา B" ,"รหัสยา C" )
and  o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
คำสั่งนี้หากมีการสั่งยาแค่ตัวเดียวก็จะขึ้นแล้วไม่ใช่หรือครับ แต่ที่เขาต้องการคือต้องมียาทั้ง 2 ตัวอยู่ด้วย
แต่พอมองเห็นคำสั่งนี้ก็นึกขึ้นได้อีกแบบครับ
select o.vn  from opitemrece o
where o.icode in ("รหัสยา 1","รหัสยา2","รหัสยา3")
and o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
having count(o.vn>2)

ใช้ในกรณีที่สั่งยาทั้ง 3 ตัว ครับ

ขอแก้ไขเพิ่มเติมครับ
ตรง having count(o.vn>2)  ให้เอา >2 ออกนอกวงเล็บครับ
แบบนี้ครับ having count(o.vn)>2
 

ออฟไลน์ BBT Hospital

  • Jr. Member
  • **
  • กระทู้: 61
  • Respect: +2
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #7 เมื่อ: ธันวาคม 11, 2012, 08:44:57 AM »
0
select o.vn from opitemrece o
where op.icode in ("รหัสยา A" ,"รหัสยา B" ,"รหัสยา C" )
and  o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
คำสั่งนี้หากมีการสั่งยาแค่ตัวเดียวก็จะขึ้นแล้วไม่ใช่หรือครับ แต่ที่เขาต้องการคือต้องมียาทั้ง 2 ตัวอยู่ด้วย
แต่พอมองเห็นคำสั่งนี้ก็นึกขึ้นได้อีกแบบครับ
select o.vn  from opitemrece o
where o.icode in ("รหัสยา 1","รหัสยา2","รหัสยา3")
and o.vstdate between "2012-12-01" and "2012-12-03"
group by o.vn
having count(o.vn>2)

ใช้ในกรณีที่สั่งยาทั้ง 3 ตัว ครับ

ขอแก้ไขเพิ่มเติมครับ
ตรง having count(o.vn>2)  ให้เอา >2 ออกนอกวงเล็บครับ
แบบนี้ครับ having count(o.vn)>2
ขอบคุณครับ บังเอิญไม่ได้ทดสอบ จึงพิมพ์ผิดไปครับ
แพทย์ โรงพยาบาลบางบัวทอง
Linux server Cent-OS 5 -ram 4 GB
HosXP when 2550
ตัวเองเริ่มใช้ July 2551
Server version: 3.55.11.8
Client version:HOSxP 3.55.2.29  (Most)
                      3.55.7.14(Ward)
การขึ้นระบบโดย : ทีม BMS
การทำ Report + SQL => นั่งเทียนมั่วเอง + copy ของ อาจารย์ ทั้งหลายครับ
** ขอบคุณ ทุกท่านที่เอื้อเฟื้อครับ **
(update signature when 56-01-24)

ออฟไลน์ chaiyahos

  • Jr. Member
  • **
  • กระทู้: 54
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #8 เมื่อ: ธันวาคม 11, 2012, 18:34:09 PM »
0
ขอบคุณทุกท่านครับที่ให้คำตอบที่เป็นประโยชน์ แต่ผมลองทำแล้ว โจทย์มันซับซ้อนกว่าที่คิด เช่น ต้องการทราบจำนวนครั้งที่มีการจ่ายยาสมุนไพรอย่างเดียว (ไม่รวมยา+นวด+ประคบ) ,ยา+นวด(ไม่รวมประคบ+ยา+นวด+อบสมุนไพร) ฯลฯ  ??? ??? ??? สุดท้ายใช้ access เลยครับ
weerachai lertwongchai :ฺPrasaeng hospital
Hosxp 3.54.10.24
email:weerachai079@yahoo.com

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: รบกวนคำสั่ง sql
« ตอบกลับ #9 เมื่อ: ธันวาคม 11, 2012, 20:45:29 PM »
0
ขอบคุณทุกท่านครับที่ให้คำตอบที่เป็นประโยชน์ แต่ผมลองทำแล้ว โจทย์มันซับซ้อนกว่าที่คิด เช่น ต้องการทราบจำนวนครั้งที่มีการจ่ายยาสมุนไพรอย่างเดียว (ไม่รวมยา+นวด+ประคบ) ,ยา+นวด(ไม่รวมประคบ+ยา+นวด+อบสมุนไพร) ฯลฯ  ??? ??? ??? สุดท้ายใช้ access เลยครับ
ความตั้งใจ และการแสวงหา ย่อมนำไปสู่หนทางออก

ต้องการทราบจำนวนครั้งที่มีการจ่ายยาสมุนไพรอย่างเดียว(ไม่รวมอบ+นวด+ประคบสมุนไพร)
 o.icode  in ("รหัสยา")  and  o.icode not in ("รหัสนวด") and o.icode not in ("รหัสประคบ") and o.icode not in ("รหัสอบ")
« แก้ไขครั้งสุดท้าย: ธันวาคม 11, 2012, 20:50:05 PM โดย มนตรี เทพไพศาล บอย(แก่งหลวง) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ chaiyahos

  • Jr. Member
  • **
  • กระทู้: 54
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนคำสั่ง sql
« ตอบกลับ #10 เมื่อ: ธันวาคม 14, 2012, 09:01:01 AM »
0
คุณมนตรี เป๊ะ!!เลย เดี๋ยวจะลองเขียน report ใหม่ ขอบคุณครับ
ตอนนี้ใช้ access ประมวลผลนานมากกกกกก.....
weerachai lertwongchai :ฺPrasaeng hospital
Hosxp 3.54.10.24
email:weerachai079@yahoo.com