ผู้เขียน หัวข้อ: Report Designer เพื่อจัดทำรายงานที่มี Sql มากกว่า 1 คำสั่งใช้อย่างไรครับ  (อ่าน 5503 ครั้ง)

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

ออฟไลน์ brrp

  • Jr. Member
  • **
  • กระทู้: 52
  • Respect: 0
    • ดูรายละเอียด
ผมต้องการรายงานสำหรับจัดทำรายงาน ต้นทุนยาและเวชภัณฑ์ โดยการดึงข้อมูลจากตารางหลักมาเพื่อจัดทำรายงาน ปรากฏว่าเร็วกว่า การ Query โดยตรงแต่ไม่สามารถนำเข้าใน custom report ได้ ใครก็ได้ช่วยที

set @date1:= '2006-01-01';
set @date2:= '2006-03-31';
     
drop TABLE if exists tmp_opitem;
CREATE table tmp_opitem(id int auto_increment,hn char(7),an char(9),vn char(13),icode char(7),qty mediumint,
unitprice double(10,2),income char(2),rxdate date,primary key(id));
drop table if exists tmp_drug;
create TABLE tmp_drug(icode char(7),name char(100),unitcost  double(10,2),primary key(icode));
insert into tmp_opitem(hn,an,vn,icode,qty,unitprice,income,rxdate)
      select hn,an,vn,icode,qty,unitprice,income,rxdate
       from hos.opitemrece 
        where rxdate between @date1 and @date2;
       
insert into tmp_drug select icode,name,unitcost from hos.drugitems;
insert into tmp_drug select icode,name,unitcost from hos.nondrugitems;

select left(rxdate,7) month1,a.income,i.name,sum(qty*b.unitcost),sum(a.unitprice*qty)
from tmp_opitem a left outer join tmp_drug b on b.icode=a.icode
left outer join income i on i.income =a.income
where i.income_group =12 and an IS NULL 
group by month1,income order by month1
โรงพยาบาลกบินทร์บุรี  180 เตียง ขึ้นระบบ กค 2547 โดย อ.ชัยพร 
server IBM x3500 M3 Centos 5.3 mysql 5.1.30  2 เครื่อง เก็บ image แยกต่างหาก
server  IBM x3500 M3 win2008 lab ls
server slave IBM x3550 M2

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
ทำได้อยู่แล้วครับ โดยคำสั่งที่จะให้ระบบสั่งให้ทำงานก่อน ต้องอยู่ในบรรทัดเดียวกัน และลงท้ายด้วยเครื่องหมาย semi-colon ;  (ห้ามขึ้นบรรทัดใหม่แล้วปิด ด้วย ;  ให้พิมพ์ต่อไปเรื่อยๆ )

และคำสั่งหลักให้อยู่ในบรรทัดสุดท้ายครับ (select statement) โดยไม่ต้องปิด statement ด้วย semi-colon ครับ

ตัวอย่างครับ

โค๊ด: SQL
  1. SET @date1:= '2006-01-01';
  2. SET @date2:= '2006-03-31';    
  3. DROP TABLE IF EXISTS tmp_opitem;
  4. CREATE TABLE tmp_opitem(id INT AUTO_INCREMENT,hn CHAR(7),an CHAR(9),vn CHAR(13),icode CHAR(7),qty mediumint, unitprice DOUBLE(10,2), income CHAR(2),rxdate DATE,PRIMARY KEY(id));
  5. DROP TABLE IF EXISTS tmp_drug;
  6. CREATE TABLE tmp_drug(icode CHAR(7),name CHAR(100),unitcost  DOUBLE(10,2),PRIMARY KEY(icode));
  7. INSERT INTO tmp_opitem(hn,an,vn,icode,qty,unitprice,income,rxdate) SELECT hn,an,vn,icode,qty,unitprice,income,rxdate FROM hos.opitemrece  WHERE rxdate BETWEEN @date1 AND @date2;
  8. INSERT INTO tmp_drug SELECT icode,name,unitcost FROM hos.drugitems;
  9. INSERT INTO tmp_drug SELECT icode,name,unitcost FROM hos.nondrugitems;
  10. SELECT LEFT(rxdate,7) month1,a.income,i.name,SUM(qty*b.unitcost),SUM(a.unitprice*qty)
  11. FROM tmp_opitem a LEFT OUTER JOIN tmp_drug b ON b.icode=a.icode
  12. LEFT OUTER JOIN income i ON i.income =a.income
  13. WHERE i.income_group =12 AND an IS NULL
  14. GROUP BY month1,income ORDER BY month1
  15.  
  16.  
« แก้ไขครั้งสุดท้าย: กรกฎาคม 10, 2007, 09:44:42 AM โดย manoi »
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ Khuad

  • Hero Member
  • *****
  • กระทู้: 3,778
  • .. นางฟ้า ตัวไม่น้อยแล้ว ..
  • Respect: +10
    • ดูรายละเอียด
..อืมมม...ได้ความรู้เพิ่มให้กับตัวเองครับ..
..การเรียนรู้ไม่มีวันสิ้นสุด  infinity จริงๆ.... ;D ;D..
โรงพยาบาลวังน้อย   พระนครศรีอยุธยา ( รพช.30 เตียง )
Server : ProLiant DL120G6  Xeon X3450  RDIMM 12 Gb  2x256GB SSD Raid 1
OS : CentOS 6.3  DB : Percona 5.5.21

Slave : ProLiant ML110G6  Xeon X3430  UDIMM 8 Gb  2x300GB SAS Raid 1
OS : CentOS 6.3  DB : Percona 5.5.32

HOSxP version  3.57.xx.xx    เริ่มระบบ  เมษายน 2549