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

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

ออฟไลน์ arr_012

  • Sr. Member
  • ****
  • กระทู้: 307
  • ค่าของคน อยู่ที่ผลของงาน
  • Respect: 0
    • ดูรายละเอียด
รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« เมื่อ: กรกฎาคม 02, 2010, 11:59:11 AM »
0
ผมใช้สั่งสัง {select hn from ovstdiag
where icd10="i64"and hn in(select hn from vn_stat  v
where v.pdx="i64"and v.vstdate <="2010-06-31"
group by v.hn having count(v.hn))and vstdate between"2010-01-01"and"2010-01-31" group by hn}
ใช้ทำรายงาน  มันทำให้ server แฮ้งไปเลย   ไม่รู้ว่าเกิดจากอะไรครับ
นายอภิชัย  ฉิมวงษ์ขอม (อะ)
โรงพยาบาลมโนรมย์ อ.มโนรมย์ จ.ชัยนาท
Master:HP ProLiant ML150 G6 Intel Xeon E5504 2.00GHz ,12 GB PC3-10600R   FeeBSD 8.2  Percona 5.1.54

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,128
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #1 เมื่อ: กรกฎาคม 02, 2010, 12:19:38 PM »
0
ยังไม่ค่อยเข้าใจคำสั่งที่เขียนขึ้่น แต่น่าจะแปลได้ประมาณนี้ (หรือเปล่าครับ)

select hn, count(hn) from ovstdiag
where icd10="I64"
and vstdate between "2010-01-01" and "2010-01-31"
group by hn
having count(hn)>2
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ แอดวิน รพ.สหัสขันธ์

  • Sr. Member
  • ****
  • กระทู้: 487
  • Respect: +2
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #2 เมื่อ: กรกฎาคม 02, 2010, 14:05:54 PM »
0
มันผิดตรงนี้ >>>>> { select หรือป่าวคับ
รพ.สหัสขันธ์ จ.กาฬสินธุ์ เริ่มใช้ HosXp ครั้งแรก ปี 49 โดย BMS (คุณไพรัตน์ จัดให้) หลังจากนั้นก็ล่มไป 1 ปี เริ่มอีกครั้ง
1 มีนาคม 2551 โดย พี่เวก แห่ง รพ.เขาวง ช่วย ครับ
HosXP 3.54.2.2 Master : IBX X3400M2 Xeon 2.5 DDR3 16 GB HDD 250 G
Percona-Server 51-5.1.53-rel12.4.181.rhel5.x86_64 CentOs 5.5 Text Mode 64 bit

Slave : IBX X3200 M3 Xeon 2.4 DDR3 14 GB HDD 250 GB-SAS
Percona-Server 5.5 rhel5.x86_64 CentOs 6.0 Text Mode 64 bit
40 client   ครับ

ออฟไลน์ arr_012

  • Sr. Member
  • ****
  • กระทู้: 307
  • ค่าของคน อยู่ที่ผลของงาน
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #3 เมื่อ: กรกฎาคม 02, 2010, 14:24:16 PM »
0
มันผิดตรงนี้ >>>>> { select หรือป่าวคับ
"{}"อันนี้ผมไม่ได้ใส่ในคำสั่งที่จะใช้ครับ
นายอภิชัย  ฉิมวงษ์ขอม (อะ)
โรงพยาบาลมโนรมย์ อ.มโนรมย์ จ.ชัยนาท
Master:HP ProLiant ML150 G6 Intel Xeon E5504 2.00GHz ,12 GB PC3-10600R   FeeBSD 8.2  Percona 5.1.54

ออฟไลน์ arr_012

  • Sr. Member
  • ****
  • กระทู้: 307
  • ค่าของคน อยู่ที่ผลของงาน
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #4 เมื่อ: กรกฎาคม 02, 2010, 14:48:17 PM »
0
คือว่า  ผมต้องการคนใข้ที่ ที่หมอ diagเป็นโรค I64 เป็นครั้งแลกที่คนใข้มารับบริการกับโรงพยาบาล โดยที่เป็นคนใข้ในเดือนมิถุนายน ด้วย ครับ
นายอภิชัย  ฉิมวงษ์ขอม (อะ)
โรงพยาบาลมโนรมย์ อ.มโนรมย์ จ.ชัยนาท
Master:HP ProLiant ML150 G6 Intel Xeon E5504 2.00GHz ,12 GB PC3-10600R   FeeBSD 8.2  Percona 5.1.54

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #5 เมื่อ: กรกฎาคม 02, 2010, 15:03:20 PM »
0
หรือว่าจะเป็นเงื่อนไข คือ  select distinct(p. hn ),o.vstdate,o.icd10  from ovstdiag o,patient p
where p.hn=o.hn and p.firstday=o.vstdate and o. icd10 like "I64%" and o.vstdate between "2010-06-01" and "2010-06-30" group by hn
order by p.hn,o.vstdate  หรือเปล่าครับ
« แก้ไขครั้งสุดท้าย: กรกฎาคม 02, 2010, 15:13:05 PM โดย kuakool »
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #6 เมื่อ: กรกฎาคม 02, 2010, 15:53:43 PM »
0
select * from ovstdiag o where o.icd10 between "I64" and "I649"
and o.vstdate between "2010-05-01" and "2010-05-31"   and o.hn not in
(select hn from ovstdiag where icd10 between "I64" and "I649" and vstdate < 2010-05-01 and hn=o.hn)
ลองคำสั่งนี้ดูครับ

ข้อมูล Diag  I64-I649 
วันที่รับบริการเปลี่ยนแปลงได้
ส่วน SubQuery ควรมีข้อมูลน้อย ๆ นะครับ  ถ้าเขียน Sub Query ที่มีข้อมูลขนาดใหญ่มากจะทำให้ค้างได้   ;D
I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ arr_012

  • Sr. Member
  • ****
  • กระทู้: 307
  • ค่าของคน อยู่ที่ผลของงาน
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #7 เมื่อ: กรกฎาคม 02, 2010, 16:49:03 PM »
0
select * from ovstdiag o where o.icd10 between "I64" and "I649"
and o.vstdate between "2010-05-01" and "2010-05-31"   and o.hn not in
(select hn from ovstdiag where icd10 between "I64" and "I649" and vstdate < 2010-05-01 and hn=o.hn)
ลองคำสั่งนี้ดูครับ

ข้อมูล Diag  I64-I649 
วันที่รับบริการเปลี่ยนแปลงได้
ส่วน SubQuery ควรมีข้อมูลน้อย ๆ นะครับ  ถ้าเขียน Sub Query ที่มีข้อมูลขนาดใหญ่มากจะทำให้ค้างได้   ;D
ครับผม
นายอภิชัย  ฉิมวงษ์ขอม (อะ)
โรงพยาบาลมโนรมย์ อ.มโนรมย์ จ.ชัยนาท
Master:HP ProLiant ML150 G6 Intel Xeon E5504 2.00GHz ,12 GB PC3-10600R   FeeBSD 8.2  Percona 5.1.54

ออฟไลน์ arr_012

  • Sr. Member
  • ****
  • กระทู้: 307
  • ค่าของคน อยู่ที่ผลของงาน
  • Respect: 0
    • ดูรายละเอียด
Re: รบกวนขอคำนำเกี่ยวกับ คำสั่ง SQL
« ตอบกลับ #8 เมื่อ: กรกฎาคม 02, 2010, 16:56:53 PM »
0
ต้องขอบคุณ พี่วรเวทย์ รพ.บึงสามัคคี กำแพงเพชร คับ

select * from (select o.hn,min(o.vstdate) vstdate,o.icd10 from ovstdiag o
where o.icd10 ="I259"and o.diagtype="1" group by o.hn) test
where vstdate between "2010-06-01" and "2010-06-30"
order by hn

ตรงตามที่ต้องการเลย ครับ
โยดยพี่เด่นชัย รพ.ไทรน้อย ที่ให้ความช่วยเหลือ มาก ครับ และพี่ทุกท่านที่ส่งมอบความรู้ให้ผม*-*
นายอภิชัย  ฉิมวงษ์ขอม (อะ)
โรงพยาบาลมโนรมย์ อ.มโนรมย์ จ.ชัยนาท
Master:HP ProLiant ML150 G6 Intel Xeon E5504 2.00GHz ,12 GB PC3-10600R   FeeBSD 8.2  Percona 5.1.54