BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: yokyai ที่ มิถุนายน 01, 2010, 16:43:08 PM
-
ถ้าทำรายงานลักษณะที่แนบมา(ไฟล์ excel ) โดยที่เราจะ query รหัสแผนกและให้คำนวนยอดของแพทย์ตามแผนกเลย และให้ออกมาในแนวนอนทีเดียวจะทำได้หรือไม่คับ ปกติตอนนี้ต้องพิมพ์ใส่ label และใช้ variable แต่ว่าถ้าเยอะจะคำนวนนานมากคับ มีวิธีไหมคับ ขอบคุณคับ :)
-
คิดว่าได้ครับ
ตอนเรา select ก็ใส่เป็น subquery อีกทีครับ
select k.depcode,k.department,
(select count(*).......) as opd,
(select count(*).......) as er
from kskdepartment k
แต่งื่อนไขการ Count ต้องไปดูอีกทีครับ
-
;D ;D
SQL : select code,name where position_id="1"
แล้ว DBtext ไปวางที่ Detail
แล้ว ใช้ Variable แต่ละตัว นับจำนวน ของแต่ละแผนก เช่น
Value:=GetSQLIntegerData('select count(xx) form table where doctor="'+dbpineline['code']+'"
and แผนก ="ER" ');
;D ;D หลักการกันเดียวกับรายงานนี้ครับ
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=14626.0
-
สงสัยว่าผมจะเข้าใจคำถามผิด อิอิ
แต่พบก็เคยเจอปัญหานี้เหมือนกันครับ เวลาวาง Variable แล้วมีข้อมูลเยอะจำคำนวณค่อนข้างช้า
ลองคิดดูเล่นนะครับ สมมุติ 1 Redcord มี 7 ฟิล ข้อมูลทั้งหมด 100 Redcord
เท่ากับว่าโปรแกรมต้อง Query 700 ครั้ง เพื่อให้ได้ข้อมูลครบ
ยังไม่นับคำสั่งใน Variable ที่ค่อนข้างซับซ้อนนะครับ
มันน่าจะเป็นเพราะส่วนนี้หรือเปล่าครับ ที่ทำให้วาง Variable แล้วดึงข้อมูลนาน
อันนี้แค่สมมุติฐานนะครับ เพราะไม่ได้จับเวลาอย่างจริงจัง 555+
-
select o.main_dep ,k.department,sum(o.doctor="008") as Doctor1 ,
sum(O.doctor="010") as doctor2,sum(o.doctor="119") as doctor3
from ovst o
left outer join kskdepartment k on k.depcode=o.main_dep
where vstdate between '2010-01-01' and '2010-01-31'
group by o.main_dep
ประมาณนีได้มัยครับ สลับกันนิดหน่อย แพทย์ แนวนอน แผนกแนวตั้ง
-
ขอบคุณทุกคนมากคับ แต่ว่าถามมีเทคนิคอีกก็แนะนำด้วยคับ การใช้ variable เยอะๆมันรอนานมาก อยากใช้ให้น้อยที่สุด :)