ผู้เขียน หัวข้อ: ทำใน varible ครับ อยากให้ count(hn) แล้ว Group by hn ได้ไหมครับ  (อ่าน 5231 ครั้ง)

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

ออฟไลน์ vampire

  • Full Member
  • ***
  • กระทู้: 139
  • Respect: +2
    • ดูรายละเอียด
ทำใน varible ครับอยากให้ count(hn) แล้ว Group by hn ด้วย แต่ออก 1 ครับ

Value := GetSQLDoubleData('select count(hn) from ovst '+
'where vstdate between "'+ISO2Date(GetUserParameter(0),'yyyy-mm-dd')+'" and " '+ISO2Date(GetUserParameter(1),'yyyy-mm-dd')+'"  '+
'Group by hn');

ต้องแก้อย่างไรครับ ท่าน อาจารย์ครับ
นักวิชาการคอมพิวเตอร์ รพ.คลองหาด
ขนาด 30 เตียง
ขึ้นระบบ HOSxP      ปี 2551
Server CentOS7.1 64 Bit
Percona 5.7.16-10  RAM 32 Gb

ออฟไลน์ armds

  • Hero Member
  • *****
  • กระทู้: 1,084
  • armds
  • Respect: +10
    • ดูรายละเอียด
Re: ทำใน varible ครับ อยากให้ count(hn) แล้ว Group by hn ได้ไหมครับ
« ตอบกลับ #1 เมื่อ: พฤศจิกายน 14, 2009, 15:54:22 PM »
0
ตัดคำว่า  Group by hn  ออก  ก็น่าจะได้นะครับ  ลองดูครับ

Value := GetSQLDoubleData('select count(hn) from ovst '+
'where vstdate between "'+ISO2Date(GetUserParameter(0),'yyyy-mm-dd')+'" and " '+ISO2Date(GetUserParameter(1),'yyyy-mm-dd')+'"  ');
โรงพยาบาลสมเด็จพระยุพราชด่านซ้าย จ.เลย
ขนาด 60 เตียง นวก. คอมพิวเตอร์ ขึ้นระบบ ปี 2548
ขอบคุณ อ.ชัยพร อ.สุชัย อ.เดชา อ.doreamon อ.naj อ.ขวด และอ.ในเว็บ hosxp.net ทุกท่าน

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
Re: ทำใน varible ครับ อยากให้ count(hn) แล้ว Group by hn ได้ไหมครับ
« ตอบกลับ #2 เมื่อ: พฤศจิกายน 14, 2009, 20:08:53 PM »
0
งงกับความต้องการ   ต้องการนับอะไรครับ

ขอเดาว่าความต้องการก็คือ  จะนับ  visit  จาก  ovst   โดยนับว่าแต่ละคนเคยมารับบริการกี่ครั้งในช่วงเวลาที่กำหนดถูกหรือเปล่าครับ  (แต่ข้อมูลพวกนี้เค้าไม่ค่อยนับกันอยู่แล้ว)

ถ้าตามนี้  output  ก็จะต้องมี  2  ค่าคือ
   -  hn
   -  จำนวนครั้งที่มา  visit   เพราะ  1 record  คือ 1 visit

แต่  ???  ทำไมถึงใช้  Variable ดึงอ่ะครับเพราะ  variable จะใช้ดึงค่า ๆ เดียว  (ไม่เคยทำแบบหลายฟิล์สักทีแม้แต่ดึงทีละหลาย reccord  ก็ยังไม่เคยทำเลยครับ   คิดว่าไม่น่าจะทำได้)

ผมเสนอว่าลองใช้  DBPipeline  ตัวอื่นดูครับ   เช่น 
ChangeDBPipeLineLink1SQL(<sql>);
ChangeReportSQL(<sql>);

<sql>  คือคำสั่ง  sql  ที่ต้องการ  เมื่อเขียนโค้ดเสร็จ  previews 1 รอบ  แล้วกับมาหน้าออกแบบรายงาน
สังเกตด้านขวาตรง  Datatree  กดเลือกตัวที่เราใช้ครับ  เช่นถ้าใช้คำสั่ง  ChangeDBPipeLineLink1SQL(<sql>);  ก็ไปกดที่  DBPipeLineLinks1
แล้วจะมี  Fields For DBPipeline  ให้เราเลือกครับ  ฟิลพวกนี้มาจากคำสั่ง  sql  ของเราที่ใส่ไปในฟังก์ชัน
ส่วนค่าต่าง ๆ  ที่จะใส่ใน report ก็สามารถนำ  DBText  มาวางได้เลย (เลือก DBPiepeline  ให้ถูกตัวด้วย)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ส่วนคำสั่ง  sql  ที่ให้มา  ถ้าต้องการ  group by hn  จริง ๆ   ให้ใช้   Group by count(hn)   แทนครับ
แต่ผลลัพท์ที่ได้คงเอาไปทำอะไรต่อไม่ได้   เพราะค่าที่ได้คือค่า ๆ เดียวครับ
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
แต่ถ้าตัด  Group by  ออก    จะเป็นการนับ visit  ผู้ป่วยนอกทั้งหมดตามช่วงเวลาที่กำหนดครับ
ที่ต้องการน่าจะเป็นตัวนี้หรือเปล่าครับ



I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ SoRnKuNg

  • Sr. Member
  • ****
  • กระทู้: 334
  • Respect: +1
    • ดูรายละเอียด
Re: ทำใน varible ครับ อยากให้ count(hn) แล้ว Group by hn ได้ไหมครับ
« ตอบกลับ #3 เมื่อ: พฤศจิกายน 15, 2009, 15:39:22 PM »
0
เท่าที่ดูและผมตีความโจทย์ออกมาแล้ว เหมือนกับว่า ต้องการนับเป็น คน คือ 1 คนมา 2 visit ก็นับเป็น 1
ที่ผมใช้คือตัวนี้ครับ


Value := GetSQLDoubleData('select count(distinct(hn)) from ovst '+
'where vstdate between "'+ISO2Date(GetUserParameter(0),'yyyy-mm-dd')+'" and " '+ISO2Date(GetUserParameter(1),'yyyy-mm-dd')+'"  ');


2,3,4,...,N visit แต่นับ 1
« แก้ไขครั้งสุดท้าย: พฤศจิกายน 15, 2009, 15:42:35 PM โดย SoRnKuNg »
โรงพยาบาลกำแพงเพชร
- ขึ้นระบบ 14 มีนาคม 2552 เวลา 23.50น.
-  MA 7-11 ธันวาคม 2552 โดยทีม MA BMS
----------------------------------------------------------------
Server หลัก : IBM x3650 Xeon Quad Core 2.5 Ram 18G
Server สำรอง : IBM x3650M3 Xeon Quad Core 2.5 Ram 20G
SANS Storage
OS : CentOS 5.6 Mysql :  Percona Version 5.5.13
HosXP : File Version 3.54.9.14
-----------------------------------------------------------------
ไม่มีความรู้ที่ไหนจะวิ่งมาหาเราถ้าเราไม่ขวนขวายหามัน
เหมือนวัวย่อมไปหาหนองน้ำไม่ใช่ให้หนองน้ำวิ่งเข้ามาหาวัว

ออฟไลน์ vampire

  • Full Member
  • ***
  • กระทู้: 139
  • Respect: +2
    • ดูรายละเอียด
Re: ทำใน varible ครับ อยากให้ count(hn) แล้ว Group by hn ได้ไหมครับ
« ตอบกลับ #4 เมื่อ: ธันวาคม 20, 2009, 14:57:23 PM »
0
ตามที่ ท่าน SoRnKuNg  บอกละครับ ผมคงบอกตามต้องการไม่ชัดเจน
ได้ข้อมูลแล้วครับ ขอบคุณมากเลยครับ ท่าน อ. ทุกท่าน ;D ;D
นักวิชาการคอมพิวเตอร์ รพ.คลองหาด
ขนาด 30 เตียง
ขึ้นระบบ HOSxP      ปี 2551
Server CentOS7.1 64 Bit
Percona 5.7.16-10  RAM 32 Gb